Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, mal noch ein anderer Gedanke. Das Makro speichert irgendwo das Datum und die Zahl. Beim Drücken auf den Button wird nachgeschaut, ob da schon das heutige Datum steht. Wenn ja, wird die Zahl aus der Zelle daneben genommen. Wenn nein, kommt das heutige Datum rein und die Zahl 1 daneben. Im Prinzip so - den Speicherort müsstest Du noch anpassen. Ansonsten kommen die Daten ins erste Blatt in A1 und B1 und da weiß ich nicht, ob da schon was anderes steht ... Code: ... wkb1.Activate With ThisWorkbook.Sheets(1).Cells(1, 1) If .Value = Date Then .Offset(, 1) = .Offset(, 1) + 1 Else .Value = Date .Offset(, 1) = 1 End If End With .. For iCounter = 0 To ListBox1.ListCount - 1
Dann könntest Du nach dem Kopieren die Zahl übernehmen Code: … wks2.Cells(xCounter, 1).Value = ThisWorkbook.Sheets(1).Cells(1, 2).Value End If
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Pirat2015
Registriert seit: 03.10.2018
Version(en): 2016
warum bleibe ich immer in 30, 54 hängen, die Nummer werden nicht weiter kopiert z.b in 30,55 Code: Private Sub CommandButton4_Click() 'Material Anfordern
Dim iCounter, xCounter As Long Set wkb1 = ThisWorkbook Set wkb2 = Workbooks.Add(1) Set wks2 = wkb2.Sheets(1) wkb1.Activate With ThisWorkbook.Sheets(1).Cells(30, 53) If .Value = Date Then .Offset(, 1) = .Offset(, 1) + 1 Else .Value = Date .Offset(, 1) = 1 wks2.Cells(xCounter, 1).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value End If End With For iCounter = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(iCounter) And xOpt = 1 Or xOpt = 2 Then Set XBlatt = Sheets(ListBox1.List(iCounter, 0)) XZeile = Range(ListBox1.List(iCounter, 1)).Row XBlatt.Cells(XZeile, 53).Value = Date xCounter = xCounter + 1 XBlatt.Range("G" & XZeile & ",H" & XZeile & ",K" & XZeile & ",R" & XZeile & ",S" & XZeile & ",T" & XZeile & ",AJ" & XZeile & ",AK" & XZeile & ",AL" & XZeile & ",AU" & XZeile & ",AV" & XZeile & "").Copy wks2.Cells(xCounter, 1) End If Next iCounter wks2.Activate End Sub
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, der Teil Code: With ThisWorkbook.Sheets(1).Cells(1, 1) If .Value = Date Then .Offset(, 1) = .Offset(, 1) + 1 Else .Value = Date .Offset(, 1) = 1 End If End With
ist doch nur dazu da, dass sich Excel merkt, welche Nummer zuletzt vergeben wurde. Da soll erst mal nix irgendwo bei Deinen Daten eingetragen werden. Das solltest Du dann Zitat:nach dem Kopieren in der Schleife machen
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.10.2018
Version(en): 2016
jetzt bin ich komplett verwirrt  , kannst du in mein code einbauen, daß was du meinst?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, ich habe diese Zeile wks2.Cells(xCounter, 1).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value oben weggenommen und weiter unten eingefügt. Du musst nur eine andere Spalte nehmen, weil es die Zelle ist, wo Du die Daten einfügst. Code: Private Sub CommandButton4_Click() 'Material Anfordern
Dim iCounter, xCounter As Long Set wkb1 = ThisWorkbook Set wkb2 = Workbooks.Add(1) Set wks2 = wkb2.Sheets(1) wkb1.Activate With ThisWorkbook.Sheets(1).Cells(30, 53) If .Value = Date Then .Offset(, 1) = .Offset(, 1) + 1 Else .Value = Date .Offset(, 1) = 1 End If End With For iCounter = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(iCounter) And xOpt = 1 Or xOpt = 2 Then Set XBlatt = Sheets(ListBox1.List(iCounter, 0)) XZeile = Range(ListBox1.List(iCounter, 1)).Row XBlatt.Cells(XZeile, 53).Value = Date xCounter = xCounter + 1 XBlatt.Range("G" & XZeile & ",H" & XZeile & ",K" & XZeile & ",R" & XZeile & ",S" & XZeile & ",T" & XZeile & ",AJ" & XZeile & ",AK" & XZeile & ",AL" & XZeile & ",AU" & XZeile & ",AV" & XZeile & "").Copy wks2.Cells(xCounter, 1) 'andere Spalte nehmen! wks2.Cells(xCounter, 1).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value End If Next iCounter
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.10.2018
Version(en): 2016
das ist doch gleiche was ich hatte, es bleib wieder in der ersten Zeile hängen [ Bild bitte so als Datei hochladen: Klick mich!]
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
was da in der ersten Zeile hängen bleibt kann ich jetzt nicht sagen. Auf jeden Fall merkt sich Excel Datum und Zahl in Cells(30, 53) und Cells(30, 54), die Adresse hast Du ja so geändert. Anschließend wird diese Zahl in Deiner Schleife verwendet, das ist die Zeile, die ich oben weggenommen und unten eingefügt habe.
Wenn Du das nächste mal auf den CommandButton drückst und es ist am gleichen Tag, wird die Zahl in Cells(30, 54) um 1 hochgesetzt und in der Schleife wird beim Eintrag der Daten die neue Zahl aus der Zelle Cells(30, 54) verwendet.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.10.2018
Version(en): 2016
vielleicht habe ich mich falsch ausgedrückt hier noch ein bsp: [ Bild bitte so als Datei hochladen: Klick mich!] so bekomme ich die Daten in Listbox, wenn ich jetzt auf commandbuton gehe wird in jeder diese Zelle (32,53; 39,53; 47,53; 53,53) das Datum ausgegeben und jetzt möchte ich das dazu noch gezählt das in Zelle (32,54; 39,54; 47,54; 53,54) --> 1 kommt wie kann ich ansschtat einer bestimmte Celle, den excel sagen schreibe die eins für alle Zelle die du in neun excel blatt aus gibst, merke dir die Zahl und bei der nächsten Ausgabe am gleichen Tag erhöhe die zahl um 1
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo, das Code: merke dir die Zahl und bei der nächsten Ausgabe am gleichen Tag erhöhe die zahl um 1
macht mein Code. Die Zahl wird, wie gesagt, in Cells(30, 54) gemerkt und wenn Du am gleichen Tag das nächste mal auf den CommandButton gehst wird sie um 1 erhöht. Wenn die Zahl in die 4 Zellen soll, dann im Prinzip so: Code: Sub test() With Sheets("Tabelle1") Union(.Cells(32, 54), .Cells(39, 54), .Cells(47, 54), .Cells(53, 54)).Value = 1 End With End Sub
bzw. in Deinem Code Code: For iCounter = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(iCounter) And xOpt = 1 Or xOpt = 2 Then Set XBlatt = Sheets(ListBox1.List(iCounter, 0)) XZeile = Range(ListBox1.List(iCounter, 1)).Row XBlatt.Cells(XZeile, 53).Value = Date xCounter = xCounter + 1 xBlatt.Range("G" & XZeile & ",H" & XZeile & ",K" & XZeile & ",R" & XZeile & ",S" & XZeile & ",T" & XZeile & ",AJ" & XZeile & ",AK" & XZeile & ",AL" & XZeile & ",AU" & XZeile & ",AV" & XZeile & "").Copy wks2.Cells(xCounter, 1) With wks2 Union(.Cells(32, 54), .Cells(39, 54), .Cells(47, 54), .Cells(53, 54)).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value End With 'wks2.Cells(xCounter, 1).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value End If Next iCounter
Vorher hattest Du das nur einmal in Spalte A eingetragen und in die Zeile xCounter. jetzt sind es 4 feste Spalten und Zeilen. Die alte Version hab ich mal nur auskommentiert, damit Du den Unterschied siehst.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.10.2018
Version(en): 2016
21.11.2018, 11:57
(Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2018, 11:57 von Pirat2015.)
muss ich Zellen deferieren? kann ich es nicht wie beim Datum "(XZeile, 54)" machen, ich weiß ja vorher nicht welche Zellen ich ansprechen muss ich weiß ja nur das ich den wert in Spalte 54 (BB) haben möchte
|