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

Forumthread: Variable überprüfen

Variable überprüfen
12.02.2019 23:47:19
Gerald
Hallo!
Ich habe leider ein Problem und komm da leider auch nach langer Internetrecherche nicht weiter.
Ich baue gerade ein Formular wo ich eine Variable in eine Zelle eingeben möchte.
Die Funktion funktioniert schon einwandfrei, jedoch möchte ich noch gerne die Eingabe überprüfen ob diese nicht wie eine Zelle benannt wird (um Probleme vorzubeugen).
Also es solle eine Variable überprüft werden ob diese wie eine Zelle heißt (A1, A2,.....). Gibt es hier einen Befehl wo man alle Zellen- Bezeichnungen auf einmal überprüfen kann?
z.B. Variable = A2 Msgbox "Variablenname = Zellenname"
Variable = BC345 Msgbox "Variablenname = Zellenname"
Variable = Breite Msgbox "Variablenname ist OK"
Variable = Hoehe2 Msgbox "Variablenname ist OK"
Kann mir hier jemand weiterhelfen?
Herzlichen Dank für Eure Bemühungen im Vorraus
Gerald
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable überprüfen
13.02.2019 05:42:13
Hajo_Zi
Hallo Gerald
Range("A1").Name =Variable1

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Variable überprüfen
13.02.2019 07:42:15
RPP63
Moin!
Du musst den Variablennamen als String einem Range übergeben.
Beachte die On Error-Behandlung (nebst sofortiger Rückstellung).
Da mein Nickname eine Zelladresse ist …
Modul Modul1
Option Explicit 
 
Sub x() 
Dim RPP63 
Dim Variablentest As Range 
On Error Resume Next 
Set Variablentest = Range("RPP63") 
On Error GoTo 0 
If Not Variablentest Is Nothing Then 
  MsgBox Variablentest.Address(0, 0) & " ist eine gültige Zelladresse!" 
Else 
  MsgBox "Variablenname ergibt keinen Konflikt!" 
End If 
End Sub 
Gruß Ralf
Anzeige
AW: Variable überprüfen
13.02.2019 10:47:09
Gerald
Hallo Ralf!
Danke vorerst mal für deine prompte Antwort.
Denke ich habe das vielleicht irgendwie falsch beschrieben.
Prinzipiell möchte ich mit VBA eine Variable vergeben welche ich dann auch in Formeln in Excel verwenden kann. Den Namen der Variable gebe ich in eine Excel- Zelle ein, den Wert dazu gleich daneben.
zum Beispiel: in der Zelle A1 gebe ich "Breite1" ein, in B1 gebe ich den Wert "30" ein. Soweit alles gut.
In VBA definiere ich nun die Variable "Breite1" mit dem Wert "30". Klappt super! Ich kann dann auch in Excel die Formel z.B. =Breite1*10 eingeben.
Nun möchte ich aber gerne bei der Eingabe der Variablen überprüfen ob diese Variable nicht eine Zellenbezeichnung ist. Falls ich zum Beispiel in der Zelle A1 unabsichtlich den Namen "H2" eingeben sollte, müsste er eine Fehlermeldung bringen und mich auffordern diesen Namen zu ändern.
Mir geht es nun darum wie ich die Variable welche dann in Zelle A1 steht überprüfen kann ob diese nicht gleichnamig mit einem Zellennamen ist.
In meinem Programm sollten dann im Endeffekt mehrere Variablen definiert werden, deshalb würde ich gerne die Überprüfung der Eingabe mit einem extra Makro starten (nicht direkt bei der Eingabe).
Herzlichen Dank für deine Bemühungen im Vorraus
LG, Gerald
Anzeige
AW: Variable überprüfen
13.02.2019 12:02:19
Werner
Hallo Gerald,
dann zeig doch endlich mal deinen Code, vielleicht wird es dann klarer.
Gruß Werner
AW: Variable überprüfen
13.02.2019 20:38:56
Gerald
Hallo!
Hier mein Code. Ich habe den Code momentan auf das Wesentlichste heruntergebrochen.
Ich hoff hiermit wird einiges klarer. Anbei noch ein Jpg vom Excelblatt.
wünsche Euch noch einen schönen Abend
Gerald
Sub Variablen_erzeugen()      ' Variablen erzeugen
Dim strVar1 As String
Dim strVar2 As String
Dim ObBereich As Object
strVar1 = Cells(1, 2).Text
strVar2 = Cells(2, 2).Text
' Alle Variablen löschen
For Each Nm In ActiveWorkbook.Names
Nm.Delete
Next Nm
' Überprüfen ob Variable- Eingabe Zellenname ist
ActiveWorkbook.Names.Add Name:=strVar1, RefersToR1C1:=Cells(1, 3).Value
ActiveWorkbook.Names.Add Name:=strVar2, RefersToR1C1:=Cells(2, 3).Value
End Sub

Userbild
Anzeige
AW: Variable überprüfen
14.02.2019 11:05:08
Werner
Hallo Gerald,
prüf doch gleich bei der Eingabe im Blatt, ob es sich um eine Zelladresse handelt oder nicht.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim raPrüf As Range
If Target.Column = 2 And Target.Count = 1 Then
If Target  "" Then
On Error Resume Next
Set raPrüf = Range(Target)
On Error GoTo 0
If Not raPrüf Is Nothing Then
MsgBox "Fehler, es handelt sich um eine Zelladresse."
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End If
End If
End Sub
Gruß werner
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Variablen in Excel überprüfen: So geht's!


Schritt-für-Schritt-Anleitung

Um eine Variable in Excel VBA zu überprüfen, ob sie mit einer Zellenbezeichnung übereinstimmt, kannst du folgenden Code verwenden. Dieser Code überprüft, ob der Name einer Zelle, der in einer anderen Zelle eingegeben wurde, mit einer bestehenden Zellenbezeichnung übereinstimmt.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeinWorkbookName)“ > Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub Variablen_erzeugen()
    Dim strVar1 As String
    Dim strVar2 As String
    Dim ObBereich As Object
    strVar1 = Cells(1, 2).Text
    strVar2 = Cells(2, 2).Text

    ' Alle Variablen löschen
    For Each Nm In ActiveWorkbook.Names
        Nm.Delete
    Next Nm

    ' Überprüfen ob Variable- Eingabe Zellenname ist
    ActiveWorkbook.Names.Add Name:=strVar1, RefersToR1C1:=Cells(1, 3).Value
    ActiveWorkbook.Names.Add Name:=strVar2, RefersToR1C1:=Cells(2, 3).Value
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu deinem Excel-Arbeitsblatt.
  2. Gib in die Zelle A1 den Namen deiner Variable und in B1 den entsprechenden Wert ein.
  3. Führe das Makro Variablen_erzeugen aus, um die Überprüfung durchzuführen.

Häufige Fehler und Lösungen

  • Fehler: „Name ist bereits vergeben“

    • Lösung: Stelle sicher, dass der Name der Variablen nicht bereits als Zellenname existiert. Der Code löscht alle vorherigen Namen, aber wenn du das nicht möchtest, überprüfe zuerst, ob der Name bereits existiert.
  • Fehler: „Typ nicht korrekt“

    • Lösung: Überprüfe, ob die Variablen richtig deklariert sind. Stelle sicher, dass du die richtigen Datentypen verwendest.

Alternative Methoden

Eine alternative Methode zur Überprüfung von Variablennamen ist die Verwendung des Worksheet_Change-Ereignisses. Hierbei wird bei jeder Änderung in der Zelle überprüft, ob es sich um einen gültigen Namen handelt:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim raPrüf As Range
    If Target.Column = 2 And Target.Count = 1 Then
        If Target <> "" Then
            On Error Resume Next
            Set raPrüf = Range(Target)
            On Error GoTo 0
            If Not raPrüf Is Nothing Then
                MsgBox "Fehler, es handelt sich um eine Zelladresse."
                Application.EnableEvents = False
                Application.Undo
                Application.EnableEvents = True
            End If
        End If
    End If
End Sub

Diese Methode funktioniert in Echtzeit, wenn du einen Namen in der Zelle änderst.


Praktische Beispiele

  1. Beispiel 1:

    • Gib in A1 den Namen „H2“ ein und in B1 den Wert „20“. Wenn du das Makro ausführst, erhältst du eine Fehlermeldung, da „H2“ eine Zelladresse ist.
  2. Beispiel 2:

    • Gib in A1 den Namen „Breite1“ ein und in B1 den Wert „30“. Das Makro wird erfolgreich ausgeführt, da „Breite1“ keine Zellenbezeichnung ist.

Tipps für Profis

  • Nutze On Error Resume Next, um Fehler abzufangen, aber sei vorsichtig, da dies auch andere Fehler maskieren kann.
  • Halte deinen Code sauber und dokumentiere wichtige Abschnitte, um die Lesbarkeit zu verbessern.
  • Teste den Code regelmäßig, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Variablenname eindeutig ist? Um die Eindeutigkeit zu gewährleisten, kannst du eine Überprüfung einbauen, die alle bestehenden Namen in der Arbeitsmappe durchläuft.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der bereitgestellte Code sollte in Excel 2010 und neueren Versionen problemlos funktionieren.

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