Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zelle plus 1 in VBA

Zelle plus 1 in VBA
25.09.2020 13:29:02
leo
Ich möchte in einer Spalte Seriennummern abfragen. Wenn die Nummer aus Zelle A2 gleich ist wie jene aus A3 dann soll etwas passieren.
Ich frage ich das richtig in VBA mit IfThenElse ab?
Danke Leo
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle plus 1 in VBA
25.09.2020 13:42:36
UweD
Hallo Leo

For i = 2 To 100
If Cells(i, 1) = Cells(i + 1, 1) Then
'Mach was
Else
'Nix
End If
Next

LG UweD
AW: Zelle plus 1 in VBA
25.09.2020 14:05:00
leo
Hello Uwe,
Super das hat geholfen mit der Schleife, ;-))
Danke
lg leo
AW: Zelle plus 1 in VBA
25.09.2020 14:20:59
leo
Hello Uwe, da dein Tipp geklappt hat, hätte ich noch eine die etwas kniffliger ist ;-(
Es wurden die identen Nummern gefunden, nun sollen die beiden Brutto Werte addiert und im leeren Feld ausgegeben werden.
Ist dies möglich, wenn ja wie!?
DANKE
lg leo
Userbild
Anzeige
AW: Zelle plus 1 in VBA
25.09.2020 14:49:12
UweD
Hallo nochmal
so?

Sub dsjdhs()
Dim i As Long, SP As Integer, SPB As Integer
Dim LR As Long
SP = 2 'Spalte B
SPB = 35 'Spalte AI
LR = Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = 2 To LR - 1
If Cells(i + 1, SP) = Cells(i, SP) And Cells(i, SP)  "" Then
Cells(i, SPB + 2) = Cells(i, SPB) + Cells(i + 1, SPB)
Else
'Nix
End If
Next
End Sub

LG UweD
Anzeige
AW: Zelle plus 1 in VBA
25.09.2020 15:13:20
leo
Hello, Uwe sorry dumme Frage, muss ich beiden Codes verbinden ?
CODE1 -> sucht 2 gleiche Persnr.
Sub IfThenElse()
Dim x As Long
For x = 2 To 100
If Cells(x, 2) = Cells(x + 2, 2) Then
Cells(30, 4).Value = "SUPERRR!!!"
Else
Cells(30, 4).Value = "NIX"
End If
Next
CODE 2 -> ?

Sub dsjdhs()
Dim i As Long, SP As Integer, SPB As Integer
Dim LR As Long
SP = 2 'Spalte B
SPB = 35 'Spalte AI
LR = Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = 2 To LR - 1
If Cells(i + 1, SP) = Cells(i, SP) And Cells(i, SP)  "" Then
Cells(i, SPB + 2) = Cells(i, SPB) + Cells(i + 1, SPB)
Else
'Nix
End If
Next
End Sub

===============================
Danke lg leo
Anzeige
AW: Zelle plus 1 in VBA
25.09.2020 15:19:21
UweD
Hi
den Ersten Code brauchst du nicht mehr.
Habe einiges variable gestaltet, so das man nur an einer Stelle ändern muss
Die 100 habe ich durch die tatsächliche Anzahl an Zeilen ersetzt

Sub dsjdhs()
Dim i As Long, SP As Integer, SPB As Integer
Dim LR As Long
SP = 2 'Spalte B
SPB = 35 'Spalte AI
LR = Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = 2 To LR - 1 'von 2 bis zur vorletzten Zeile
If Cells(i + 1, SP) = Cells(i, SP) And Cells(i, SP)  "" Then ' wenn gleich und nicht  _
leer
Cells(i, SPB + 2) = Cells(i, SPB) + Cells(i + 1, SPB) ' Summe
Else
'Nix
End If
Next
End Sub

Anzeige
AW: Zelle plus 1 in VBA
25.09.2020 15:27:56
leo
Hi Uwe, ok thanx,.... dann werde ich mal versuchen ;-)))
lg leo
AW: Zelle plus 1 in VBA
25.09.2020 15:39:41
leo
Hi, letzte Frage, wo wäre was zu Ändern? Da es leider nicht klappt ;-(((
DANKEEEEE
AW: Zelle plus 1 in VBA
25.09.2020 15:48:17
UweD
Was klappt denn nicht?
Evtl. lädst du mal ein Musterdatei hoch
Anzeige
AW: Zelle plus 1 in VBA
25.09.2020 15:58:51
leo
Hi, Datei anbei.
Suche nach identen PersNr., wenn welche gefunden werden, sollen die beiden Werte der Spalte "Brutto Neu" addiert und als Summe in die Spalte "Summe" geschrieben werden.
DANKEEEEEE
sg Leo
https://www.herber.de/bbs/user/140443.xlsx
...
Anzeige
AW: Zelle plus 1 in VBA
25.09.2020 16:22:17
UweD
Du muss die Spalten an die jetzige Struktur anpassen
so Besser verständlich

Sub Leo()
Dim i As Long, SP As Integer, SPB As Integer, SPS As Integer
Dim LR As Long, Z1 As Integer
SP = 1  'Spalte PersNr
SPB = 3 'Spalte Brutto
SPS = 5 'Spalte Summe
Z1 = 2 ' Erste Zeile mit Daten
LR = Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
'reset
Cells(Z1, SPS).Resize(LR - Z1 + 1, 1).ClearContents
For i = Z1 To LR - 1 'von 2 bis zur vorletzten Zeile
If Cells(i + 1, SP) = Cells(i, SP) And _
Cells(i, SP)  "" Then ' wenn gleich und nicht leer
Cells(i, SPS) = Cells(i, SPB) + Cells(i + 1, SPB) ' Summe
Else
'Nix
End If
Next
End Sub

LG UweD
Anzeige
ohne VBA
25.09.2020 16:24:16
UweD
geht das mit der Formel
E2: =WENN(A3=A2;C2+C3;"")
nach unten kopieren
LG UweD
ohne VBA
25.09.2020 16:24:16
UweD
geht das mit der Formel
E2: =WENN(A3=A2;C2+C3;"")
nach unten kopieren
LG UweD
AW: ohne VBA
25.09.2020 16:57:58
Leo
Hi Uwe,....
Großes DANKE,..... 👍🏼
Super....
Sg leo
Anzeige
Danke für die Rückmeldung (owT)
28.09.2020 08:56:34
UweD
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zelle plus 1 in VBA


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA eine Zelle um 1 zu erhöhen, kannst du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste in den Projekt-Explorer klickst und auf Einfügen > Modul auswählst.

  3. Kopiere den folgenden Code in das Modul:

    Sub ZellePlusEins()
       Dim i As Long
       Dim letzteZeile As Long
    
       letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row ' letzte Zeile in Spalte A
    
       For i = 2 To letzteZeile ' von Zeile 2 bis zur letzten Zeile
           Cells(i, 1) = Cells(i, 1) + 1 ' Zelle in Spalte A um 1 erhöhen
       Next i
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro ZellePlusEins auswählst und auf Ausführen klickst.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs."

    • Lösung: Stelle sicher, dass du das richtige Arbeitsblatt aktiv hast und dass die verwendete Spalte Daten enthält.
  • Fehler: "Typ nicht übereinstimmend."

    • Lösung: Überprüfe, ob die Zellen, die du addierst, Zahlen sind. Der Code funktioniert nur mit numerischen Werten.

Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch mit Excel-Formeln arbeiten. Zum Beispiel:

  1. In Zelle B2 schreibe die Formel:

    =A2 + 1
  2. Ziehe die Formel nach unten, um sie auf die anderen Zellen anzuwenden.

Diese Methode ist besonders nützlich, wenn du schnell und ohne Programmierung arbeiten möchtest.


Praktische Beispiele

Beispiel 1: Seriennummern vergleichen und summieren

Wenn du in Spalte A Seriennummern hast und in Spalte B die entsprechenden Bruttowerte, kannst du den folgenden VBA-Code verwenden:

Sub SeriennummernSummieren()
    Dim i As Long, letzteZeile As Long
    letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To letzteZeile - 1
        If Cells(i, 1) = Cells(i + 1, 1) Then
            Cells(i, 3) = Cells(i, 2) + Cells(i + 1, 2) ' Summe in Spalte C
        End If
    Next i
End Sub

Dieser Code sucht nach identischen Seriennummern in Spalte A und summiert die entsprechenden Werte aus Spalte B in Spalte C.


Tipps für Profis

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.

  • Nutze Debug.Print zur Fehlersuche, um den Wert von Variablen während der Ausführung des Codes zu überprüfen.

  • Experimentiere mit With...End With-Blöcken, um den Code lesbarer und effizienter zu gestalten.


FAQ: Häufige Fragen

1. Wie kann ich die letzte Zeile in einer bestimmten Spalte finden? Du kannst die folgende Zeile verwenden, um die letzte Zeile in Spalte A zu finden:

letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row

2. Kann ich den Code anpassen, um mehrere Spalten gleichzeitig zu bearbeiten? Ja, du kannst den Code so anpassen, dass er durch mehrere Spalten iteriert und die gewünschten Berechnungen für jede Spalte anwendet.

3. Wie kann ich eine Zelle um mehr als 1 erhöhen? Ändere einfach den Code in der Schleife von Cells(i, 1) = Cells(i, 1) + 1 zu Cells(i, 1) = Cells(i, 1) + n, wobei n die gewünschte Erhöhung ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige