kleines excel skript - leere zeile suchen
HitTheCow 25.06.2008 - 10:14 807 2
HitTheCow
it's been an honor.
|
excel noob braucht wieder hilfe :/ ich hab zwei excel dateien, wobei von der einen daten in die andere geschrieben werden sollen. das ist kein problem. ich bräuchte aber ein kleines skript, das mir im zweiten file (dort wo die daten reingespielt werden) die nächste freie zeile sucht und dort die einträge dann reinspielt. wenn in einer zeile eine der 20 zellen belegt ist geht er in die nächste. daten werden dann mit ...cells(zeilennr, 1) ...cells(zeilennr, 20) überspielt. sprich ich bräucht als rückgabe die zeilennr. hätt eine lösung zum problem gefunden, leider in alter excel sprache  Grunddaten_Speichern() =ECHO(FALSCH) =WENN(ISTLEER(Grunddaten!C1)) = NächsteFreieNummerErmitteln() = DatenInÜbersichtsblattSpeichern(B88) = FORMEL(B88;Grunddaten!C1) = FORMEL(B88;Grunddaten!C5) =SONST() = DatenInÜbersichtsblattSpeichern(Grunddaten!C1) =ENDE.WENN() =RÜCKSPRUNG() von der logik her komm ich noch mit, aber ich hab keinen plan das in vba umzusetzen...
Bearbeitet von HitTheCow am 25.06.2008, 11:33
|
Smoldi
rape diem
|
das freie zeilen ermitteln müsste so gehen: Function FreieZeile()
Dim i As Integer
i = 1
While Worksheets("Tabelle1").Cells(i, 1).Value <> ""
i = i + 1
Wend
FreieZelle = i
End Function
edit: ups ich glaub ich hab das falsch verstanden... kannst du mal dein skript posten?
Bearbeitet von Smoldi am 25.06.2008, 15:54
|
HitTheCow
it's been an honor.
|
'identifier
wert1 = Art
wert2 = VkNr
wert3 = Jahr
check:
zelle1 = ActiveCell.FormulaR1C1
ActiveCell.Offset(0, 1).Activate
zelle2 = ActiveCell.FormulaR1C1
ActiveCell.Offset(0, 1).Activate
zelle3 = ActiveCell.FormulaR1C1
ActiveCell.Offset(0, -2).Activate
'existierende zeile suchen
weiter:
If wert1 = zelle1 Then
If wert2 = zelle2 Then
If wert3 = zelle3 Then
zeilenr = ActiveCell.Row
MsgBox ("Bereits vorhandene Einträge werden ersetzt")
Sheets("Tabelle1").Cells(zeilenr, 1).Value = Art
Sheets("Tabelle1").Cells(zeilenr, 2).Value = VkNr
Sheets("Tabelle1").Cells(zeilenr, 3).Value = Jahr
...
GoTo ende
End If
End If
End If
'ansonsten leere zeile suchen
If zelle1 = "" And zelle2 = "" And zelle3 = "" Then
zeilenr = ActiveCell.Row
MsgBox ("Einträge werden neu angelegt")
Sheets("Tabelle1").Cells(zeilenr, 1).Value = Art
Sheets("Tabelle1").Cells(zeilenr, 2).Value = VkNr
Sheets("Tabelle1").Cells(zeilenr, 3).Value = Jahr
...
GoTo ende
End If
ActiveCell.Offset(1, 0).Activate
GoTo check
ende:
ich hoff so passts nun
|