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

Forumthread: VBA: in Bereich bestimmte Spalte durchnummerieren

VBA: in Bereich bestimmte Spalte durchnummerieren
31.05.2007 21:10:38
Peter
Guten Abend
ich möchte in einem benannten Bereich (Name: Daten) in der Spalte Z aufsteigende Nummern eintragen.
Beispiel: Wenn der Bereich Daten A3 : AB 17 umfasst, sollte in Zelle Z3 die Zahl 1 eingetragen sein und die Nummerierung bis Z17 gehen.
Kann mir jemand sagen, wie ich dies mit VBA am sinnvollsten anstelle?
Danke
Peter

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: in Bereich bestimmte Spalte durchnummerie
31.05.2007 21:30:11
Uduuh
Hallo,
z.B. so:

Sub ttt()
With ActiveSheet.Range("Daten")
With .Range(.Cells(3, 26), .Cells(.Rows.Count, 26))
.FormulaLocal = "=zeile()-2"
.Value = .Value
End With
End With
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: VBA: in Bereich bestimmte Spalte durchnummerie
31.05.2007 21:50:05
Peter
Hallo Udo
Danke für die Rückmeldung.
Im Moment trägt er mir die Zahlen 9 - 38 ab Zelle AD11 ein (unabhängig vom Bereich "Daten").
Mir ist nicht ganz klar, weshalb er in Zelle AD11 beginnt.
Ist es möglich, dass der Eintrag immer in der Zeile beginnt, wo auch der Bereich "Daten" beginnt?
Freundlicher Gruss, Peter

Anzeige
AW: VBA: in Bereich bestimmte Spalte durchnummerie
31.05.2007 22:37:57
Uduuh
Hallo,
so?

Sub ttt()
With ActiveSheet.Range("Daten").Columns(26)
.FormulaLocal = "=zeile(a1)"
.Value = .Value
End With
End Sub


Gruß aus’m Pott
Udo

AW: VBA: in Bereich bestimmte Spalte durchnummerie
31.05.2007 23:22:00
Peter
Hallo Udo
Der Beginn der Einträge (Zeilennummer) stimmt nun. Die Nummerierung sollte jedoch immer in Spalte Z erfolgen, umgeachtet welche Spalten der Bereich "Daten" umfasst.
Vielen Dank!
Peter

Anzeige
AW: VBA: in Bereich bestimmte Spalte durchnummerie
31.05.2007 23:52:49
Uduuh
Hallo,
solange Z in Daten ist:

Sub ttt()
With ActiveSheet.Range("Daten")
With .Columns(27 - .Column)
.FormulaLocal = "=zeile(a1)"
.Value = .Value
End With
End With
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: VBA: in Bereich bestimmte Spalte durchnummerie
01.06.2007 00:15:18
Matthias
Hallo Peter
Probier mal ...
Der Bereich A3:AB17 ist mit dem namene "Daten" defiiniert
Option Explicit

Sub peter()
Dim C As Variant
Dim x
x = 1
For Each C In Range("Daten")
If C.Column = 26 Then C.Value = x: x = x + 1
Next
End Sub


Userbild
Gruß Matthias

Anzeige
AW: VBA: in Bereich bestimmte Spalte durchnummerie
01.06.2007 07:16:00
Peter
Hallo Udo und Matthias
Vielen Dank für eure Beiträge.
Sie ergeben beide das gewünschte Resultat!
Peter
;
Anzeige
Anzeige

Infobox / Tutorial

VBA: Excel Spalte durchnummerieren


Schritt-für-Schritt-Anleitung

Um in einer bestimmten Spalte innerhalb eines benannten Bereichs in Excel zu durchnumerieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code trägt aufsteigende Nummern in der Spalte Z ein, solange der benannte Bereich "Daten" korrekt definiert ist.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden VBA-Code in das Modul:
Sub durchnumerieren()
    With ActiveSheet.Range("Daten")
        With .Columns(27 - .Column) ' 27 entspricht Spalte Z
            .FormulaLocal = "=ZEILE(A1)"
            .Value = .Value
        End With
    End With
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Drücke ALT + F8, wähle durchnumerieren aus der Liste und klicke auf Ausführen.

Dieser Code sorgt dafür, dass die Spalte Z in Deinem benannten Bereich "Daten" von Z3 bis Z17 mit aufsteigenden Zahlen gefüllt wird.


Häufige Fehler und Lösungen

  • Fehler: Zahlen erscheinen in einer falschen Spalte

    • Lösung: Stelle sicher, dass der benannte Bereich "Daten" korrekt definiert ist. Überprüfe, ob Spalte Z innerhalb dieses Bereichs liegt.
  • Fehler: #BEZUG! Fehler

    • Lösung: Vergewissere Dich, dass der benannte Bereich "Daten" nicht gelöscht oder verschoben wurde.

Alternative Methoden

Eine einfache Alternative zu VBA ist die Verwendung einer Formel direkt in Excel:

  1. Gehe zu Zelle Z3.
  2. Gib die Formel =ZEILE(A1) ein.
  3. Ziehe das Ausfüllkästchen (kleines Quadrat in der unteren rechten Ecke der Zelle) bis zu Z17.

Auf diese Weise kannst Du die Excel-Spalte durchnummerieren, ohne VBA verwenden zu müssen.


Praktische Beispiele

Wenn Du beispielsweise in einem Bereich mit den Zellen A3 bis AB17 arbeitest und die Spalte Z durchnummerieren möchtest, kannst Du den oben genannten VBA-Code verwenden, um die Zellen Z3 bis Z17 automatisch mit den Zahlen 1 bis 15 zu füllen.

Sub nummerieren()
    Dim C As Variant
    Dim x As Integer
    x = 1
    For Each C In Range("Daten")
        If C.Column = 26 Then C.Value = x: x = x + 1 ' 26 entspricht Spalte Z
    Next
End Sub

Tipps für Profis

  • Verwende Option Explicit: Setze am Anfang Deines Moduls Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um Probleme zu identifizieren, falls der benannte Bereich nicht vorhanden ist.

FAQ: Häufige Fragen

1. Wie kann ich die Startnummer ändern?
Du kannst die Startnummer im Code anpassen, indem Du die Variable x auf den gewünschten Wert setzt.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der bereitgestellte VBA-Code funktioniert in den meisten modernen Excel-Versionen, einschließlich Excel 2010 und neuer.

3. Was mache ich, wenn ich eine andere Spalte durchnummerieren möchte?
Ändere einfach die Zahl in C.Column = 26 auf die entsprechende Spaltennummer für die Spalte, die Du durchnummerieren möchtest.

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