Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen AA/AB/etc ansprechen

Forumthread: Zellen AA/AB/etc ansprechen

Zellen AA/AB/etc ansprechen
19.06.2005 16:56:17
Kathrin
Hallo Excelfreunde,
ich bin blutiger VBA-Anfänger.
Ich möchte die Werte aus der ersten Spalte (A) in bestimmten Abschnitten jeweils in die nächsten Spalten ausschneiden/einfügen.
(z.B.: Die Werte A101-A200 in Spalte B, die Werte A201-A300 in Spalte C, die Werte A301-400 in Spalte D, etc.) In der Spalte A stehen ziemlich viele Werte drin (ca. 15000 Zeilen). Hab da bis jetzt schon kurz was dazu programmiert:

Sub copy_cols()
i = 0
Do
zeilenbeginn = 1 + i * 100
zeilenende = 100 + i * 100
zeilen = "A" & zeilenbeginn & ":A" & zeilenende
spalte = Chr(i + 65) & "1"
Worksheets("Tabelle1").Range(zeilen).Select
Selection.Cut
Worksheets("Tabelle1").Range(spalte).Select
ActiveSheet.Paste
i = i + 1
Loop Until (IsEmpty(Range("A" & zeilenbeginn + 100)))
End Sub


Für 25 Vorgänge funktioniert das, dann sind die Spalten bis Z gefüllt. Dann beginnen aber die Spalten mit der Bezeichnung AA, AB, AC, etc.
Wie kann ich diese ansprechen? Und würde das mit einer IF-Then-Anweisung funktionieren?
Ich hab das schonmal versucht, aber irgendwas is noch falsch.
Könnt Ihr helfen?
Vielen Dank!
Viele Grüße
Kathrin
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen AA/AB/etc ansprechen
19.06.2005 17:22:22
Nepumuk
Hallo Kathrin,
wenn du an Stelle des Range - Objektes das Cells - Objekt verwendest, kannst du mit numerischen Spaltenbezeichnungen arbeiten.
Beispiel:
Public Sub test()
    Dim lngRow As Long
    Dim intColumn As Integer
    Application.ScreenUpdating = False
    intColumn = 1
    For lngRow = 101 To Cells(Rows.Count, 1).End(xlUp).Row Step 100
        intColumn = intColumn + 1
        Range(Cells(lngRow, 1), Cells(lngRow + 99, 1)).Cut _
            Range(Cells(1, intColumn), Cells(100, intColumn))
    Next
    Application.ScreenUpdating = True
End Sub

Gruß
Nepumuk
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zellen AA/AB in Excel ansprechen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle eine neue Arbeitsmappe oder öffne eine bestehende.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  4. Kopiere den folgenden Code in das Modul:

    Sub copy_cols()
       Dim i As Integer
       Dim zeilenbeginn As Long
       Dim zeilenende As Long
       Dim zeilen As String
       Dim spalte As String
    
       i = 0
       Do
           zeilenbeginn = 1 + i * 100
           zeilenende = 100 + i * 100
           zeilen = "A" & zeilenbeginn & ":A" & zeilenende
           spalte = Chr(i + 65) & "1"
           Worksheets("Tabelle1").Range(zeilen).Cut
           Worksheets("Tabelle1").Range(spalte).Select
           ActiveSheet.Paste
           i = i + 1
       Loop Until (IsEmpty(Range("A" & zeilenbeginn + 100)))
    End Sub
  5. Ändere die Zeilen für Spalten AA, AB, AC: Ersetze den Code im Loop durch eine Logik, die auch ab Spalte AA funktioniert. Du kannst das Chr(i + 65) durch eine Funktion ersetzen, die die Spaltennummer in Buchstaben konvertiert.


Häufige Fehler und Lösungen

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

    • Lösung: Stelle sicher, dass der Blattname korrekt ist. Wenn du das Blatt "Tabelle1" genannt hast, dann sollte der Code so bleiben. Andernfalls ändere den Namen im Code entsprechend.
  • Fehler: "Zellen können nicht ausgeschnitten werden"

    • Lösung: Prüfe, ob die Zellen, die du verschieben möchtest, gesperrt sind. Entsperre sie, bevor du den VBA-Code ausführst.

Alternative Methoden

  1. Verwendung von Excel-Formeln: Anstelle von VBA kannst du auch Formeln verwenden, um die Werte in die gewünschten Spalten zu kopieren. Eine einfache Formel könnte so aussehen:

    =A1

    und dann nach rechts ziehen.

  2. Power Query: Du kannst auch Power Query verwenden, um große Datenmengen zu transformieren und in verschiedene Spalten zu laden.


Praktische Beispiele

  • Beispiel 1: Wenn du die Werte von A101:A200 in die Spalte B verschieben möchtest, kannst du den oben genannten Code verwenden und anpassen, um die Range zu ändern.

  • Beispiel 2: Um die Werte von A201:A300 in Spalte C zu verschieben, ändere die zeilenbeginn und zeilenende Variablen entsprechend.


Tipps für Profis

  • Verwende Cells anstelle von Range: Wie Nepumuk erwähnt hat, ist es effizienter, das Cells-Objekt zu verwenden, um mit numerischen Indizes zu arbeiten, besonders wenn du mit Spalten AA, AB, AC arbeitest.

  • ScreenUpdating deaktivieren: Dies beschleunigt den Prozess, vor allem bei großen Datenmengen. Vergiss nicht, es am Ende wieder zu aktivieren.


FAQ: Häufige Fragen

1. Wie spreche ich die Spalten AA, AB, AC in Excel an? Du kannst die Spalten mit Cells ansprechen, indem du die numerischen Werte für die Spalten verwendest. Zum Beispiel ist Spalte AA die 27. Spalte.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code ist mit den meisten Excel-Versionen kompatibel, die VBA unterstützen. Achte nur darauf, dass du den richtigen Blattnamen verwendest.

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