Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mehrfachauswahl Fehler im Code

Forumthread: Mehrfachauswahl Fehler im Code

Mehrfachauswahl Fehler im Code
02.09.2018 18:11:49
Peter
Hallo ihr Excelspezialisten,
ich habe im Archiv eine Anwendung gefunden, welche zum Teil funktioniert.
Sub Hauptkonto_löschen_Test3()
Dim suchbegriff As String
Dim fc As Object
Dim i As String
Dim s, s1, s2, s3 As String
Dim s4 As String
Dim s5 As String
Dim r As Long
'Dim b1 As Range, b2 As Range, b3 As Range, myMultiAreaRange As Range
Dim b1 As Range
Dim b2 As Range
Dim b3 As Range
Dim myMultiAreaRange As Range
suchbegriff = "test16"
'suchbegriff = UserForm2_letztes_Konto_löschen.TextBox25
Set fc = Worksheets("Hilfstabelle").Columns("A").Rows("2:65000").Find(what:=suchbegriff)
fc.Select
s = Selection.Column
r = Selection.Row
s1 = (Selection.Column) + 3
s2 = (Selection.Column) + 13
s3 = (Selection.Column) + 15
s4 = (Selection.Column) + 21
s5 = (Selection.Column) + 17
'Debug.Print s1
'Debug.Print s2
'Debug.Print s3
'Debug.Print s4
Set b1 = ActiveCell
Set b2 = Range(Cells(r, s1), Cells(r, s2))
'Set b3 = Range(Cells(r, s3), Cells(r, s4))
'Set myMultiAreaRange = Union(b1, b2, b3)
Set myMultiAreaRange = Union(b1, b2)
myMultiAreaRange.Select
End Sub
Wenn ich "'Set b3 = Range(Cells(r, s3), Cells(r, s4))" und "'Set myMultiAreaRange = Union(b1, b2, b3)" aktiviere kommt Laufzeitfehler 1004.
Was mache ich hier falsch? Könnt ihr mir Bitte helfen.
Gruss
Peter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Mehrfachauswahl Fehler im Code
02.09.2018 18:34:07
Sepp
Hallo Peter,
welches 'herumgehüpfe', der Cursor ist kein Hund, der braucht keinen Auslauf!
Wahrscheinlich wird der Suchbegriff nicht gefunden, deshalb so.
Sub Hauptkonto_löschen_Test3()
  Dim suchbegriff As String
  Dim rng As Range, b2 As Range
  Dim s As Long, s1 As Long, s2 As Long, s3 As Long, s4 As Long, s5 As Long, r As Long

  suchbegriff = "test16"
  'suchbegriff = UserForm2_letztes_Konto_löschen.TextBox25 

With Worksheets("Hilfstabelle")
  Set rng = .Columns("A").Find(what:=suchbegriff, LookAt:=xlWhole, LookIn:=xlValues, MatchCase:=False, SearchFormat:=False)
  If Not rng Is Nothing Then
    s = rng.Column
    r = rng.Row
    s1 = rng.Column + 3
    s2 = rng.Column + 13
    s3 = rng.Column + 15
    s4 = rng.Column + 21
    s5 = rng.Column + 17
    Set b2 = .Range(.Cells(r, s1), .Cells(r, s2))
    Union(rng, b2).Select
  End If
End With

End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Mehrfachauswahl Fehler im Code
02.09.2018 18:45:59
Peter
Hallo Sepp,
besten Dank für Deine Hilfe.
Habe das Ganze um b3 erweitert - funktioniert.
Wünsche Dir noch einen schönen Abend.
Gruss
Peter
AW: Mehrfachauswahl Fehler im Code
02.09.2018 18:44:00
Luschi
Hallo Peter,
Du hast die Variable 's3' zum String gemacht. Leider verzeiht Dir Vba diesen Lapsus hier:
s3 = (Selection.Column) + 15 (Du schreibst eine errechnete Zahl in eine String-Variable).
Schon hier müßte der Debugger laut um Hilfe rufen, tut er aber nicht und wandelt gutmütig das
Ergebis in einen String um und bestückt damit s3 (s3 ist und bleibt also ein String)
Hier aber: Set b3 = Range(Cells(r, s3), Cells(r, s4))
verlangt Cells eine Zahl s3 und keinen String!
Gruß von Luschi
aus klein-Paris
PS: die Variablen s, s1, s2 sind übrigens vom Typ Variant und können damit als als Zahl verwendet werden.
Wie die Variablen richtig definiert werden zeigte diese auskommtierte Zeile:
'Dim b1 As Range, b2 As Range, b3 As Range, myMultiAreaRange As Range
Anzeige
AW: Mehrfachauswahl Fehler im Code
02.09.2018 18:53:28
Peter
Hallo Luschi,
Du hast Recht, habe das Ganze umgeschrieben funktioniert.
Besten Dank für Deine Hilfe.
Wünsche Dir noch einen schönen Abend.
Gruss
Peter
;
Anzeige
Anzeige

Infobox / Tutorial

Fehlerbehebung bei der Mehrfachauswahl in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.
  2. Füge den folgenden Code ein:

    Sub Hauptkonto_löschen_Test3()
       Dim suchbegriff As String
       Dim rng As Range, b2 As Range
       Dim s As Long, s1 As Long, s2 As Long, s3 As Long, s4 As Long, s5 As Long, r As Long
    
       suchbegriff = "test16"
       With Worksheets("Hilfstabelle")
           Set rng = .Columns("A").Find(what:=suchbegriff, LookAt:=xlWhole, LookIn:=xlValues, MatchCase:=False)
           If Not rng Is Nothing Then
               s = rng.Column
               r = rng.Row
               s1 = rng.Column + 3
               s2 = rng.Column + 13
               s3 = rng.Column + 15
               s4 = rng.Column + 21
               s5 = rng.Column + 17
               Set b2 = .Range(.Cells(r, s1), .Cells(r, s2))
               Union(rng, b2).Select
           End If
       End With
    End Sub
  3. Aktiviere die benötigten Variablen:

    • Stelle sicher, dass die Variablen s, s1, s2, s3, s4, s5 als Long deklariert sind, um Fehler zu vermeiden.
  4. Führe das Makro aus:

    • Drücke F5, um das Makro auszuführen und die Mehrfachauswahl zu aktivieren.

Häufige Fehler und Lösungen

  • Fehler: "Diese Aktion funktioniert nicht bei einer Mehrfachauswahl":

    • Dieser Fehler tritt auf, wenn das Makro versucht, mit einer mehr als einer Zelle in einem Bereich zu arbeiten, der nicht richtig definiert wurde. Überprüfe, ob alle Variablen korrekt deklariert sind.
  • Laufzeitfehler 1004:

    • Dieser Fehler kann auftreten, wenn die Find-Methode keinen Wert findet. Stelle sicher, dass der suchbegriff tatsächlich in der angegebenen Spalte vorhanden ist.
  • Typkonflikt:

    • Wenn du einen String in eine Variable vom Typ Long zuweisen willst, kann es zu Problemen kommen. Achte darauf, dass alle Variablen korrekt deklariert sind.

Alternative Methoden

  • Verwenden von Excel-Funktionen:

    • Anstatt VBA zu verwenden, kannst du auch Excel-Funktionen wie SVERWEIS oder FILTER nutzen, um Daten zu suchen und auszuwählen.
  • Datenüberprüfung mit Dropdown:

    • Erstelle eine Dropdown-Liste, um eine Mehrfachauswahl zu ermöglichen, ohne VBA nutzen zu müssen. Diese Methode ist besonders nützlich, wenn du nur bestimmte Werte zulassen möchtest.

Praktische Beispiele

  • Beispiel 1: Einfache Mehrfachauswahl

    Sub Beispiel_Mehrfachauswahl()
      Dim myRange As Range
      Set myRange = Range("A1:A10") ' Bereich anpassen
      myRange.Select
    End Sub
  • Beispiel 2: Mehrfachauswahl kopieren

    Sub Kopieren_Mehrfachauswahl()
      Dim sourceRange As Range
      Dim targetRange As Range
    
      Set sourceRange = Range("A1:A10")
      Set targetRange = Range("B1")
      sourceRange.Copy targetRange
    End Sub

Tipps für Profis

  • Debugging:

    • Nutze Debug.Print in deinem Code, um Werte während der Ausführung zu prüfen. Dies hilft, den Grund für Fehler besser zu verstehen.
  • Fehlerbehandlung:

    • Implementiere On Error Resume Next, um Laufzeitfehler zu ignorieren und den Code fortzusetzen. Denk daran, dies nur sinnvoll zu verwenden.
  • Verwendung von Option Explicit:

    • Füge Option Explicit am Anfang deines Codes hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden und den Code verständlicher zu machen.

FAQ: Häufige Fragen

1. Was bedeutet "diese Aktion funktioniert nicht bei einer mehrfachauswahl"?

  • Dieser Fehler tritt auf, wenn du versuchst, eine Aktion auf mehrere Zellen anzuwenden, die nicht unterstützt wird. Überprüfe deine Auswahl und die verwendeten Funktionen.

2. Wie kann ich eine Mehrfachauswahl in Excel kopieren?

  • Du kannst die Union-Funktion in VBA verwenden, um mehrere Bereiche auszuwählen und zu kopieren. Stelle sicher, dass die Bereiche korrekt definiert sind.

3. Warum funktioniert mein VBA-Code nicht?

  • Häufige Probleme sind ungenaue Bereichsdefinitionen, Typinkompatibilitäten oder Fehler in der Logik des Codes. Überprüfe alle Variablen und den Fluss deines Codes.

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