kleines excel skript - leere zeile suchen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/kleines_excel_skript_leere_zeile_suchen_196682/page_1 - zur Vollversion wechseln!


HitTheCow schrieb am 25.06.2008 um 10:14

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...


Smoldi schrieb am 25.06.2008 um 15:51

das freie zeilen ermitteln müsste so gehen:

Code:
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?


HitTheCow schrieb am 25.06.2008 um 21:46

Code:
'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 :)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026