Clever-Excel-Forum

Normale Version: Suchfeld mit Textfenster in eine Dynamische Tabelle erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9
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
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
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
jetzt bin ich komplett verwirrt Huh Huh , kannst du in mein code einbauen, daß was du meinst?
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
das ist doch gleiche was ich hatte, es bleib wieder in der ersten Zeile hängen

[
Bild bitte so als Datei hochladen: Klick mich!
]
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.
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
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.
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
Seiten: 1 2 3 4 5 6 7 8 9