PDA

Vollständige Version anzeigen : Daten kopieren in VBA


omich
05.07.2015, 12:28
Moin moin!

Habe folgenden VBA-Code. Es gibt zwei Sachen, die mich stören:

1. Das Kopieren geschieht samt Formatierungen, was ich nicht möchte.
2. Nach dem letzten Kopierbefehl erscheint der kopierte Text nur kurz und verschwindet danach wieder. Was mache ich falsch?

Vielen Dank im Voraus!

Sub DatenUebertrag()
Dim Zeile As Long
Dim KA As Long
Dim Art As Long
Dim Rng As Range


KA = GUSS.Range("B6").Value
Art = GUSS.Range("C6").Value

ProdPlan.Cells(7, 2).Value = KA
ProdPlan.Cells(7, 3).Value = Art

With Datenbank 'Tabellenname

Set Rng = .Range("A1:A10000").Find(Art)

If Rng Is Nothing Then
MsgBox "Artikel nicht gefunden!"
Exit Sub
End If

Zeile = Rng.Row + 1 'ab Zeile ... suchen

Do While .Cells(Zeile, 1).Value = ""
Zeile = Zeile + 1
Loop

.Cells(Rng.Row, 2).Copy ProdPlan.Cells(7, 4)
.Range("D" & Rng.Row & ":D" & Zeile - 1).Copy ProdPlan.Range("D8")

End With

End Sub

Hajo_Zi
05.07.2015, 12:35
mein Test sagt Artikel nicht gefunden, darum keine Information zu Problem 2.
Option Explicit

Sub DatenUebertrag()
Dim Zeile As Long
Dim ZeileMax As Long
Dim KA As Long
Dim Art As Long
Dim Rng As Range
KA = Guss.Range("B6").Value
Art = Guss.Range("C6").Value
ProdPlan.Cells(7, 2).Value = KA
ProdPlan.Cells(7, 3).Value = Art
With Datenbank 'Tabellenname
Set Rng = .Range("A1:A10000").Find(Art)
If Rng Is Nothing Then
MsgBox "Artikel nicht gefunden!"
Else
Zeile = Rng.Row + 1 'ab Zeile ... suchen
ZeileMax = .UsedRange.Rows.Count
Do While .Cells(Zeile, 1).Value = ""
Zeile = Zeile + 1
Loop
.Cells(Rng.Row, 2).Copy
ProdPlan.Cells(7, 4).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False 'Zwischenspeicher löschen
.Range("D" & Rng.Row & ":D" & Zeile - 1).Copy ProdPlan.Range("D8")
End If
End With
End Sub


<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

omich
05.07.2015, 12:39
Es gibt eine Liste, die durchsucht wird. In dieser ist der richtige Artikel drin. Es wird ja das Richtige kopiert, es verschwindet nur sofort nach dem es erscheint.

Hajo_Zi
05.07.2015, 12:47
gut dann kann ich Dir nicht weiter helfen, da bei mir der Artikel nicht gefunden wird.
Ich bin dann raus.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

omich
05.07.2015, 13:01
Hat sich erledigt! Habe den Code wie folgt geändert und schon klappt beides wunderbar! :-)
Also beim Kopieren jeweils den Code ".PasteSpecial Paste:=xlPasteValues" eingefüg.


.Cells(Rng.Row, 2).Copy
ProdPlan.Cells(7, 4).PasteSpecial Paste:=xlPasteValues
.Range("D" & Rng.Row & ":D" & Zeile - 1).Copy
ProdPlan.Range("D8").PasteSpecial Paste:=xlPasteValues