Zellen Überprüfen und Weiterspringen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Zellen Überprüfen und Weiterspringen
von: Gronk Nstein
Geschrieben am: 18.06.2015 14:52:21

Hallo!
Ich versuche gerade ein Makro zu schreiben mit dem ich Konservierungsstoffe und Allergene sowie den Artikelnamen erfassen kann. Der Eintrag per Inputbox funktioniert, auch wird die Eingabe an den richtigen Zellen vorgenommen.
Nun habe ich aber folgendes Problem: Das Makro befasst sich nur mit den Zellen A3, B3 und C3. Wenn ich nun ein neues Produkt eintragen will so wird der vorherige Eintrag überschrieben. Nun suche ich nach einer Möglichkeit die Zellen zuerst zu überprüfen, bis eine Leere Zelle gefunden ist in die der Eintrag, also der Neue, eingetragen werden kann.
Bisher sieht mein Makro wie folgt aus:

Sub Inhaltsstoffe()
Dim Warenname As String
Dim Allergen As String
Dim Konservierungsstoffe As Integer
    Warenname = InputBox("Bitte Namen eintragen")
    Allergene = InputBox("Bitte Allergenkürzel eintragen")
    Konservierungsstoffe = InputBox("Bitte Konservierungsstoffkürzel eintragen")
        With Sheets("Tabelle1")
        .Range("B1").Value = "Inhaltsstoffe"
        .Range("A2").Value = "Warenname"
        .Range("B2").Value = "Allergene"
        .Range("C3").Value = "Konservierungsstoffe"
        .Range("A3").Value = Warenname
        .Range("B3").Value = Allergene
        .Range("C3").Value = Konservierungsstoffe
    End With
End Sub

Bild

Betrifft: AW: Zellen Überprüfen und Weiterspringen
von: Michael
Geschrieben am: 18.06.2015 15:20:09
Hi Gronk,
am einfachsten ist es für den Einsteiger zu verstehen, wenn man den Wert für die nächste Zeile einfach in einer Zelle abspeichert, ausliest und um 1 erhöht, wann immer eine neue Zeile geschrieben wird.
Am Beispiel G1 sähe das dann so aus:

Sub Inhaltsstoffe()
Dim Warenname As String
Dim Allergen As String
Dim Konservierungsstoffe As Integer
    Warenname = InputBox("Bitte Namen eintragen")
    Allergene = InputBox("Bitte Allergenkürzel eintragen")
    Konservierungsstoffe = InputBox("Bitte Konservierungsstoffkürzel eintragen")
        With Sheets("Tabelle1")
         If .Range("G1").Value>=3 Then
           .Range("G1").Value = .Range("G1").Value + 1
          Else
           .Range("G1").Value = 3
         End If 
         zeile = .Range("G1").Value
'        .Range("B1").Value = "Inhaltsstoffe"
'        .Range("A2").Value = "Warenname"
'        .Range("B2").Value = "Allergene"
'        .Range("C3").Value = "Konservierungsstoffe"
'   Die Überschriften stehen ja nach dem ersten Aufruf bereits da!
        .Range("A" & zeile).Value = Warenname
        .Range("B" & zeile).Value = Allergene
        .Range("C" & zeile).Value = Konservierungsstoffe
    End With
End Sub
Grundsätzlich mag ich input-Boxen nicht so sehr, daß ich einen Vorteil darin sehen würde; ich würde die Daten lieber direkt in die Tabelle eingeben, das ist (gefühlt) weniger Arbeit bei der Bedienung.
Schöne Grüße,
Michael
P.S.: Die "Profi-Lösung" findest Du, wenn Du recherchierst nach: excel vba letzte gefüllte zelle
da findest Du z.B. https://www.herber.de/forum/archiv/324to328/325186_VBAin_letzte_gefuellte_Zelle_springen.html

Bild

Betrifft: AW: Zellen Überprüfen und Weiterspringen
von: Gronk Nstein
Geschrieben am: 18.06.2015 15:39:32
Vielen Dank für die schnelle Antwort.
Mir ging es eigentlich nur darum für die Zukunft so etwas auf zu bauen, da ich diese Allergeneliste aus unserem Haus schon alle von Hand in Excel eingetragen habe aber immer wieder vor Formatierungsproblemen stehe bzw. ich Dachte eine "schnelle" Eingabe im Lager machen zu müssen, was sich mittlerweile auch erledigt hat.
Um zum eigentlichen zurück zu kommen: An das erhöhen der Werte hab ich gar nicht mehr gedacht! Danke für den Hinweis, ausprobieren werde ich es bestimmt. Alternativ muss ich mich an einer Datenbank zur Erfassung machen, so das direkt bei Lieferung sämtliche Daten erfasst werden müssen....
MfG

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellen Überprüfen und Weiterspringen"