VBA - Code
#1
Guten Morgen in die Runde,

ich habe mir einen VBA-Code aus dem Internet abgeschrieben um Werte von Tabelle1 in die Tabelle Kunden zu übertragen, beim Testen des Code's kommt allerdings die Meldung "Fehler beim Kompilieren, Variable nicht deklariert" .

Hier der Code:
Sub copy()
Sheets("Tabelle1").Select
lr = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row
Range("A2:D" & lr).copy
Sheets("kunden").Select
lrTarget = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row
Cells(lrTarget + 1, 1).Select
ActiveSheet.Paste
Columns("A:D").Autofit
Cells(1, 1).Select
End Sub

und dieser Teil ist markiert "lr =", da ich mich ein wenig an VBA herantaste und noch nicht verstehe, wie die Variable zu deklarieren ist, hier meine Frage: wie muss ich den Code schreiben, damit er läuft?
Wäre prima wenn mir jemand, der sich mit VBA auskennt, mal eben schreibt wie der sein muss und wo genau der eingefügt werden muss. Ich hab die Datei mit angehängt, der VBA Code im Modul ist auskommentiert.

Gruß der Jo
17


Angehängte Dateien
.xlsm   Mappe (31).xlsm (Größe: 21,11 KB / Downloads: 3)
Antworten Top
#2
(19.03.2024, 10:16)johammer schrieb: ich habe mir einen VBA-Code aus dem Internet abgeschrieben

Moin!
Da sieht man mal, was für einen Schrott man im Internet finden kann.
Ich weiß gar nicht wo ich anfangen soll …
Vielleicht solltest Du eher damit anfangen, dich in die absoluten Grundlagen einzulesen.
https://www.online-excel.de/excel/grusel_vba.php?f=6
Zur Variablendeklaration:
https://learn.microsoft.com/de-de/office...-variables

Ich schreibe Dir den Code gleich mal so um, wie er mir sinnvoll erscheint.

Gruß Ralf

Mal eine Variante ohne Variablen:
PHP-Code:
Sub copy()
  Worksheets("Tabelle1").Cells(201).End(xlUp).Resize(14).copy _
    Worksheets
("kunden").Cells(201).End(xlUp).Offset(10)
  Worksheets("kunden").Columns("A:D").AutoFit
End Sub 
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
PHP-Code:
Sub M_snb()
  sheets(1).cells(1).currentregion.offset(1).resize(,4).copy sheets("kunden").Cells(rows.count, 1).End(xlUp).Offset(1)
End Sub  
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#4
2^20 ist aber kürzer als Rows.Count
21
(und komme mir nicht mit 20 Jahre alten Excel-Versionen)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
2^20 <> robust. In 2 Monate wird rows.count 2^21 sein. 21
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
Hallo @RPP63 und @snb,  17

ich bedanke mich für eure schnellen Antworten.
Beide Code's sind ok. Super.  05

Ja, RPP63 ist richtig, man sollte sich informieren wenn man mit VBA anfängt.
Wenn man aber, so wie ich kein Englisch kann, ist das nicht so einfach sich in die Materie reinzudenken.
Überwiegend beschränke ich mich auf den Makrorekorder.
Wenn ich dann schonmal sowas entdecke, wie diesen VBA -Code aus dem Internet, dann möchte ich das auf meine Tabelle mal anwenden.  17.

Naja, es klappt auf jeden Fall so wie ich mir das gedacht habe.

Herzlichen Dank

Gruß der Jo 100
Antworten Top
#7
Moin Jo!
Ich habe ja auch nicht Dich kritisiert, sondern den Verfasser des Codes aus der Threaderöffnung.
Selbst ich verwende auch heute noch ab und an den Rekorder.

Die beiden Codes funktionieren allerdings unterschiedlich:
snbs kopiert alles ab Zeile 2,
meiner nur die letzte Zeile.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Zitat:Selbst ich

Tu quoque, Brute ?   21
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
Jawohl, Caesar!
Du weißt ja, wie das ausging.  21
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste