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

Forumthread: per VBA Spalte A suchen und bei Spalte B Wert hinz

per VBA Spalte A suchen und bei Spalte B Wert hinz
31.10.2006 10:26:43
Sascha
Hallo zusammen,
habe folgendes Problem:
in Spalte A befinden sich vierstellige Zahlen, nun möchte ich dass per Makro die Spalte A geprüft wird und je nach Nummer in der Spalte B der Text dazugeschrieben wird. Ich habe es mit folgendem Makro versucht:
Sub test()
Columns("A:A").Select
ActiveCell.Offset(1, 0).Select
If "0001" Then
ActiveCell.Offset(0, 1).Select
Selection = "Grundvergütung"
Else
End If
ActiveCell.Offset(1, -1).Select
If "0002" Then
ActiveCell.Offset(0, 1).Select
Selection = "Zulagen"
Else
End If
ActiveCell.Offset(1, -1).Select
If "0003" Then
ActiveCell.Offset(0, 1).Select
Selection = "Grundvergütung"
Else
End If
Hier gibt es nun 2 Probleme, erstens gibt es ca. 1000 dieser vierstelligen Zahlen, wobei der Text in Spalte B häufig der gleiche sein wird (benötige also eine Art Zusammenfassung...) und das zweite und schwierigste Problem ist, dass dieser Makro flexibel sein soll, d.h. wenn die Zeile 1 nicht "0001" sondern "0014" enthält, soll er den Text für "0014" nehmen, momentan macht er dann einfach nichts....
Kann mir jemand helfen?
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per VBA Spalte A suchen und bei Spalte B Wert hinz
31.10.2006 10:59:34
Rudi
Hallo,
warum nicht einfach per SVERWEIS()?
Gruß
Rudi
AW: per VBA Spalte A suchen und bei Spalte B Wert hinz
31.10.2006 11:04:06
Sascha
Hallo Rudi,
an diesen habe ich auch gedacht, dass Problem ist aber dass dann Excel ständig neu "rechnet" und Dateien in der es verwendet wird zu groß ist und dann öfters hängen bleibt, (Hintergrund ist sicher auch dass aus dieser Tabelle eine Pivot erstellt wird).
Um es kurz zu machen, Makro muss her... ;-)
Hat jemand ne Idee?
Anzeige
AW: per VBA Spalte A suchen und bei Spalte B Wert hinz
31.10.2006 11:54:17
Rudi
Hallo,

Sub tt()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To Cells(65536, 1).End(xlUp).Row
Select Case Cells(i, 1)
Case "0001", "0003"
Cells(i, 2) = "Grundvergütung"
Case "0002"
Cells(i, 2) = "Zulagen"
Case "0014"
Cells(i, 2) = "Test"
End Select
Next i
Application.ScreenUpdating = True
End Sub

Gruß
Rudi
Anzeige
AW: per VBA Spalte A suchen und bei Spalte B Wert hinz
31.10.2006 12:00:09
Sascha
Hallo Rudi,
Vielen Dank!!!!!
Gruß Sascha

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spalte A mit VBA durchsuchen und Werte in Spalte B einfügen


Schritt-für-Schritt-Anleitung

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

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" -> Einfügen -> Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub tt()
       Dim i As Long
       Application.ScreenUpdating = False
       For i = 1 To Cells(65536, 1).End(xlUp).Row
           Select Case Cells(i, 1)
               Case "0001", "0003"
                   Cells(i, 2) = "Grundvergütung"
               Case "0002"
                   Cells(i, 2) = "Zulagen"
               Case "0014"
                   Cells(i, 2) = "Test"
           End Select
       Next i
       Application.ScreenUpdating = True
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Drücke ALT + F8, wähle tt und klicke auf "Ausführen".

Jetzt wird die Spalte A nach den entsprechenden vierstelligen Zahlen durchsucht und die passenden Texte in Spalte B eingefügt.


Häufige Fehler und Lösungen

  • Fehler: Nichts passiert, wenn das Makro ausgeführt wird.

    • Lösung: Stelle sicher, dass die Zahlen in Spalte A als Text formatiert sind. Prüfe auch, ob die Zahlen genau übereinstimmen (z.B. "0001" und nicht "1").
  • Fehler: Das Makro läuft sehr langsam.

    • Lösung: Aktiviere Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Dies beschleunigt den Vorgang erheblich.

Alternative Methoden

Wenn du VBA nicht verwenden möchtest, kannst du auch die SVERWEIS()-Funktion nutzen, um Werte in Spalte B basierend auf den vierstelligen Zahlen in Spalte A zu suchen. Beachte jedoch, dass dies zu einer erhöhten Rechenlast führen kann, insbesondere bei großen Datenmengen.

Hier ein einfaches Beispiel für die Verwendung von SVERWEIS():

=SVERWEIS(A1, Suchbereich, 2, FALSCH)

Ersetze Suchbereich durch den Bereich, in dem die vierstelligen Zahlen und die entsprechenden Texte stehen.


Praktische Beispiele

Angenommen, du hast folgende Daten in Spalte A:

A B
0001
0002
0003
0014

Nach der Ausführung des VBA-Makros sollte die Tabelle folgendermaßen aussehen:

A B
0001 Grundvergütung
0002 Zulagen
0003 Grundvergütung
0014 Test

Tipps für Profis

  • Datenvalidierung: Verwende die Funktion zur Datenvalidierung, um sicherzustellen, dass nur vierstellige Zahlen in Spalte A eingegeben werden.
  • Modularer Code: Teile deinen VBA-Code in mehrere Subroutinen auf, um ihn wartungsfreundlicher zu gestalten und die Lesbarkeit zu verbessern.
  • Fehlerbehandlung: Implementiere On Error Resume Next, um Laufzeitfehler abzufangen und den Code robuster zu machen.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehr als vierstellige Zahlen zu verwenden?
Du kannst die Select Case-Anweisung erweitern, um zusätzliche vierstellige Zahlen und die entsprechenden Texte hinzuzufügen.

2. Ist es möglich, das Makro so zu gestalten, dass es nur auf einen bestimmten Bereich in Spalte A angewendet wird?
Ja, du kannst die Schleife anpassen, indem du den Bereich von 1 To Cells(65536, 1).End(xlUp).Row auf den gewünschten Bereich änderst, z.B. For i = 2 To 100.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige