Hallöchen,
Du hast aber feste Zeilen angefordert
Ich habe extra den alten Code drin gelassen. Da siehst Du, dass die Zeilennummer nicht fest programmiert ist. Allerdings weiß ich nicht, wie sich Deine Zeilennummern berechnen. Eventuell kann man das anhand des xCounter tun, also z.B. Cells(xcounter-13, 54) oder Cells(xCounter+88, 54) oder ähnlich.
Vielen Dank für deine Bemühungen aber ich glaube wir verstehen uns hier nicht. egal diese Funktion ist nicht so wichtig
Danke
Hallöchen,
kleiner Denkfehler. Also Dein Code war doch fast schon korrekt:
wks2.Cells(xCounter, 1).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value
Es muss jedoch nicht xCounter sein sondern xZeile und wenn der Eintrag in Spalte 54 soll dann mach aus der 1 eine 54.
ändert sich nichts, ich vermutet es liegt an dieser Stelle:
Code:
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
Er Prüft die 30,54 und schreibt dann in die 54 die 1 aber weiter wird nicht kopiert oder geprüft.
Ich denke hier ist der Fehler
Mann müsste Ihm sagen er soll die Zeile 53 komplett von 30 bis 15000 Prüfen und dann jedes mal einen wert daneben ausgeben
ich habe mit XZEILE, Range, icounter probiert kommt jedes mal ein fehler
Hallöchen,
wo kommt denn der Fehler und welcher?
Du hast unten in der Schleife
wks2.Cells(xZeile, 1).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value
programmiert?
Code:
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(xZeile, 1).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value
End If
Next iCounter
ja, es ist das gleiche Ergebnis, er geht nicht in die nächste Zelle
Hallo,
also, mit dem xCounter und der xZeile ist ein richtiges durcheinander geworden. So richtig klar ist mir immer noch nicht, wo die Zahl hin soll
Daher nochmal langsam und hoffentlich verständlicher.
Deine Daten fügst Du dort ein:
… Copy
wks2.Cells(xCounter, 1)
Wenn die Zahl daneben soll, müsste es
wks2.Cells(xCounter, 2).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value
lauten.
wenn die Zahl dort daneben soll:
XBlatt.Cells(xZeile, 53).Value = Date
müsste es
xBlatt.Cells(xZeile, 54).Value = ThisWorkbook.Sheets(1).Cells(30, 54).Value
lauten.
Super Danke, jetzt habe ich was ich wollte
Hey Schauan,
kannst du mir nochmal helfen.
Könntest du mir eine Code zeigen der folgende machen kann.
Wenn ich in der Zeile AX die Zahl eingebe, kleiner oder gleich, welche in AY steht, soll eine Meldung kommen, das in der Spalte AZ ein Name eingetragen werden muss.
Das soll von AX16 bis AX15000 gehen
[
Bild bitte so als Datei hochladen: Klick mich!]
Danke
Hallöchen,
bevor ich jetzt den Thread durchforste - wenn och kein WorkSheetChange - Makro im Codemodul des Blattes steht im Prinzip so
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Wenn mehr als eine Zelle betroffen, dann Makro verlassen
If Target.Cells.Count > 1 Then Exit Sub
'Wenn es eine Zelle im Bereich ... betrifft, dann
If Not Intersect(Target, Range("AX10:AX16000")) Is Nothing Then
'Wenn der Wert der Zelle rechts daneben kleiner oder gleich ist, dann Meldung ausgeben
If Target.Value <= Target.Offset(, 1).Value Then MsgBox "Was in AZ" & Target.Row & " eingeben"
'Ende Wenn es eine Zelle im Bereich ... betrifft, dann
End If
End Sub