Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suchfeld mit Textfenster in eine Dynamische Tabelle erstellen
#61
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:
  • Pirat2015
Antworten Top
#62
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
Antworten Top
#63
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)
Antworten Top
#64
jetzt bin ich komplett verwirrt Huh Huh , kannst du in mein code einbauen, daß was du meinst?
Antworten Top
#65
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)
Antworten Top
#66
das ist doch gleiche was ich hatte, es bleib wieder in der ersten Zeile hängen

[
Bild bitte so als Datei hochladen: Klick mich!
]
Antworten Top
#67
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)
Antworten Top
#68
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
Antworten Top
#69
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)
Antworten Top
#70
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
Antworten Top


Gehe zu:


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