online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon DOMMEl vom 03.10.2021, 14:55 Options

Lösung

Ergänzung zu VBA Code

Hallo ihr Lieben...
ich habe folgenden Code erstellt.
Allerdings bräuchte ich ne kleine Ergänzung, die ich als "Laie" nicht so hinbekomme wie gewünscht.

Wenn er die Kundennummer eingefügt hat soll er automatisch eine Zeile unter den letzten vorhandenen Datensatz springen, bevor er wieder zu "Kundennummer neu" springt. Damit die eingegebene Nummer nicht wieder überschrieben wird beim nächsten Mal

Ich hoffe, dass ihr mir da weiterhelfen könnt..

Sub Neue_Kundennummer_in_Hauptdatei()
'
' Neue_Kundennummer_in_Hauptdatei Makro
'

'
Range("B4").Select
Selection.Copy
Sheets("Hauptdatei").Select
Range("A8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A9").Select
Sheets("Kundennummer neu").Select
Application.CutCopyMode = False
End Sub


Vielen Dank


Antwort schreiben

Antwort 1 von Saarbauer vom 03.10.2021, 16:26 Options

Hallo,

ich habe das makro mir mal angesehen, ist aber ohhne die dazugehörige Datei etwas schwer nachzuvollziehen.

Sub Neue_Kundennummer_in_Hauptdatei()
' Neue_Kundennummer_in_Hauptdatei Makro
Range("B4").Select auf welchem Sheet steht der Cusor ?
Selection.Copy
Sheets("Hauptdatei").Select
Range("A8").Select sollen immer die Daten aus A8 kopiert werden?
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A9").Select sollen die Daten immer nach A9 kopiert werden?
Sheets("Kundennummer neu").Select
Application.CutCopyMode = False
End Sub

Es ist daher nicht so einfach dir einen Rat zu geben wo genau der Fehler ist, ich vermute aber in den Range-Anweisungen

Gruß

Helmut

Antwort 2 von rainberg vom 03.10.2021, 16:59 Options

Hallo DOMMEI,

probier's mal so

Option Explicit

Sub test()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim intZeile As Integer
    Set ws1 = Worksheets("Kundennummer neu")
    Set ws2 = Worksheets("Hauptdatei")
    If IsEmpty(ws2.Range("A8")) Then
        intZeile = 8
    Else
        intZeile = ws2.Cells(Rows.Count, 1).End(xlUp).Row + 1
    End If
    ws1.Range("B4").Copy ws2.Range("A" & intZeile)
End Sub


Gruß
Rainer

Antwort 3 von DOMMEl vom 03.10.2021, 18:42 Options

@Saarbauer

Also der Cursor steht auf B4 im Tabellenblatt "Kundennummer neu", diese Zeile wird kopiert mit Strg C
und dann als Inhalt in ein anderes Tabellenblatt nennt sich "Hauptdatei" eingefügt. In die Zeile A8 (das war die Zeile unter dem letzten vorhandenen Datensatz).
Dort wird dann das Feld B4 eingefügt als Inhalt Werte.
Wenn das geschehen ist geht er zurück ins "Kundennummer neu "Tabellenblatt und die Taste Esc wird gedrückt damit die Kopierfunktion beendet wird.


Was mir noch fehlt, ist halt, dass er immer unter dem letzten Datensatz springt und da das Kopierte einfügt

Antwort 4 von DOMMEl vom 03.10.2021, 18:43 Options

ich glaube auch dass es an dem Range liegt.

B4 ist ja noch richtig... nur das A8 und A9 müsste durch etwas ersetzt werden, wo gesagt wird, dass er unter den letzten DAtensatz einfügen soll. Das weiß ich leider nicht wie das geht

Antwort 5 von Saarbauer vom 03.10.2021, 19:53 Options

Hallo,

versuch es mal so

Sub Neue_Kundennummer_in_Hauptdatei()
' Neue_Kundennummer_in_Hauptdatei Makro
' Range("B4").Select kann entfallen
ActiveCell.Select
Selection.Copy
Sheets("Hauptdatei").Select
Range("A" & Rows.Count, 1).End(xlUp).Row + 1
).Select
'geändert
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Range("A9").Select kann entfallen
Sheets("Kundennummer neu").Select
Application.CutCopyMode = False
End Sub

Gruß

Helmut

Antwort 6 von DOMMEl vom 03.10.2021, 21:57 Options

Er sagt: Fehler beim Kompilieren
Syntaxfehler

Antwort 7 von DOMMEl vom 03.10.2021, 22:04 Options

Er sagt: Fehler beim Kompilieren
Syntaxfehler

und meckert hier:

Range("A" & Rows.Count, 1).End(xlUp).Row + 1).Select

vl eine klammer zu wenig oder zu viel??

Antwort 8 von coros vom 04.10.2021, 06:34 Options

Hallo DOMMEI,

wenn ich das richtig verstanden habe, dann soll das Makro immer den Wert aus Tabellenblatt "Kundenummer Zelle B4" in das Blatt "Hauptdatei" in die erste freie Zelle in Spalte A eingefügt werden. Das macht nachfolgendes Makro.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Neue_Kundennummer_in_Hauptdatei()
Dim lngFirstRow As Long
Application.ScreenUpdating = False
'erste freie Zelle in Blatt "Hauptdatei" ermitteln
lngFirstRow = Sheets("Hauptdatei").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Wert aus Blatt "Kundennummer" Zelle B4 kopieren...
Sheets("Kundennummer").Range("B4").Copy
'und in Blatt "Hauptdatei" erste freie Zelle Spalte A einfügen
Sheets("Hauptdatei").Range("A" & lngFirstRow).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
Ich hoffe, Du meintest das so? Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 9 von rainberg vom 04.10.2021, 07:54 Options

Hallo miteinander,

ich hatte es so verstanden, dass die kopierten Werte aus B4 von "Kundennummer
neu", in "Hauptdatei" beginnend mit A8, eingefügt werden sollen.

Genau das macht mein Makro!

Gruß
Rainer

Antwort 10 von coros vom 04.10.2021, 07:59 Options

Moin Rainer,

das kann wohl nur @DOMMEI beantworten, warum für ihn Dein Makro nicht in Frage kommt, obwohl es das macht, was er sich vorgestellt hat. Ich habe mich nur auf das Makro von ihm bezogen, weil er hier den Fehler erhalten hat.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 11 von Saarbauer vom 04.10.2021, 12:43 Options

Hallo,

ein Fehler in meinem Makro, da kein richtiger Test möglich ist, dazu wäre ein Nachbau der Datei erforderlich,

Range("A" & Range("A65536").End(xlUp).Row+ 1).Select

Gruß

Helmut

Antwort 12 von DOMMEl vom 04.10.2021, 12:53 Options

@rainberg
was du für mich erstellt hast, habe ich in dieser Form schon.

@coros
leider führt er bei deinem nix aus.

Meiner sah ja so aus:

Sub Neue_Kundennummer_in_Hauptdatei()
'
' Neue_Kundennummer_in_Hauptdatei Makro
'

'
Range("B4").Select
Selection.Copy
Sheets("Hauptdatei").Select
Range("A8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A9").Select
Sheets("Kundennummer neu").Select
Application.CutCopyMode = False
End Sub



Für die fett geschriebenen Punkt fehlt mir halt so etwas, dass er stattdessen, die Sachen aus "Kundennummer neu B4" in die erste freie Zeile in Spalte A von "Hauptdatei" einfügt.

Antwort 13 von DOMMEl vom 04.10.2021, 12:54 Options

und nicht in die festvergebenen Zeilen, die hier "A8" und "A9" sind (die waren halt bei mir frei)

Antwort 14 von coros vom 04.10.2021, 13:57 Options

Hallo Domei,

ändere mal in dem Makro von mir in der Zeile

Sheets("Kundennummer").Range("B4").Copy
den Blattnamen in "Kundennummer neu", also lautet die Zeile dann

Sheets("Kundennummer neu").Range("B4").Copy
dann sollte es funktionieren.
Wobei ich nicht so richtig weiß, was Du eigentlich gegen Rainers Makro hast, denn das macht eigentlich auch dass, was Du willst.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 15 von DOMMEl vom 04.10.2021, 14:11 Options

sowas wie er mir dankenswerter weise erstellt hat habe ich leider schon als Makro, sodass er auch nur die Inhalte einfügt, wie ich es vorhatte, was mir halt fehlte: ist der Befehl, dass er sich automatisch die erste Spalte nimmt und da die erste freie Zeile sucht und das da einfügt.

deins funktioniert trotz Änderung irgendwie nicht..

Antwort 16 von DOMMEl vom 04.10.2021, 14:30 Options

Habe das eingefügt...

Option Explicit

Sub Neue_Kundennummer_in_Hauptdatei()
Dim lngFirstRow As Long
Application.ScreenUpdating = False
'erste freie Zelle in Blatt "Hauptdatei" ermitteln
lngFirstRow = Sheets("Hauptdatei").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

'Wert aus Blatt "Kundennummer" Zelle B4 kopieren...
Sheets("Kundennummer neu").Range("B4").Copy
'und in Blatt "Hauptdatei" erste freie Zelle Spalte A einfügen
Sheets("Hauptdatei").Range("A" & lngFirstRow).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub


.... aber er führt nix aus...leider :-(.. was ist denn die Anweisung / der VBA Code dafür, dass er in der "Hauptdatei" sucht in Spalte A nach der ersten freien Zeile und dort das aus "kundennummer neu" "b4" einfügt

Antwort 17 von rainberg vom 04.10.2021, 14:32 Options

Hallo DOMMEI,

da kann ich nur noch mal wiederholen, mein Makro macht genau das, was Du
mehrfach anforderst.
Hast Du es wenigstens mal getestet?

Andernfalls hast Du nicht das gefragt, was Du in Wirklichkeit wissen willst.

Gruß
Rainer

Antwort 18 von coros vom 04.10.2021, 14:44 Options

Hallo DOMMEI,

Du kannst Dich darauf verlassen, dass mein Makro zu 100% das macht, was Du gefordert hast. Es kopiert den Wert aus Tabellenblatt "Kundennummer neu" Zelle "B4" und fügt diesen kopierten Wert in Tabellenblatt "Hauptdatei" in die erste freie Zelle in Spalte A ein. Das war von Dir gefordert und das macht das Makro.

Ich kann Rainer nur zustimmen

Zitat:
Andernfalls hast Du nicht das gefragt, was Du in Wirklichkeit wissen willst.


Eventuell sieht Deine Datei ja auch nur anders aus, als das was wir uns als Beispieldatei erstellt haben. Lade daher mal Deine Datei z.B. http://www.file-upload.net/ hoch und teile uns den Link, den Du erhälst hier mit.

Du kannst Dir aber auch mal meine Beispieldatei unter http://www.excelbeispiele.de/Beispiele_Supportnet/Beispiel_Kundenum... herunterladen und da wirst Du sehen, dass das Makro das macht, was Du willst.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 19 von Saarbauer vom 04.10.2021, 14:49 Options

Hallo,

auch mein Makro müsste es leisten, da unsere Makros alle auf den Gleichen weg führen.

Ich kann mich daher @rainberg und @coros nur anschliessen

Gruß

Helmut

Antwort 20 von DOMMEl vom 04.10.2021, 15:44 Options

mhhh.. nun bin ich irgendwie ratlos oder total verpeilt..

@rainberg.. dein Makro hat funktioniert... bestens, es allerdings genau so wie meins...

@coros.. die datei die du gemacht hast funktioniert blendend und genau sowie ich mir das gedacht und gesagt habe mit dem code.. aber in meiner datei wills nicht das machen was du da super erstellt hast...deshalb bin ich jetzt total verwirrt...

hier einmal der link meiner datei:
http://www.file-upload.net/download-1925591/ExcelHauptdatei.xls.html

Ähnliche Themen

VBA-Code funktioniert nicht mehr
jojo5  03.07.2008 - 72 Hits - 3 Antworten

Brauche hilfe bei VBA Code
BenjaminM  30.07.2008 - 24 Hits - 20 Antworten

Richtige Trennung einer Formel im VBA-Code
Ron11  18.08.2008 - 29 Hits - 8 Antworten

Frage zu einem VBA-Code
Donjuandan  25.11.2008 - 43 Hits - 6 Antworten

Warum funktioniert dieser VBA code nicht???
Harm  06.02.2009 - 469 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026