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

Forumthread: Variable mit If Bedingung

Variable mit If Bedingung
13.11.2014 14:02:29
Andreas
Hallo,
mal wieder stehe ich vo einem kleinem Problem, das ich durch suchen im Internet nicht lösen konnte.
Ich möchte einer Variable eine If bedingung zuordnen. Leider funktioniert das nicht und ich weiß nicht wo der Fehler liegt.
Ich möchte, wenn ich Celle C4 ein X steht, den Wert der Zelle B4 als Variable haben. Darin steht dann z.B. 0013.
Ist das so realisierbar?
Hier mein vereinfachter Versuch.
Sub TEST_Var()
Dim Var As String
Var = If Cells(4, 3).Value = "X" Then Cells(4, 1).Value
MsgBox Var
End Sub
Bekomme arber immer ienen Fehler beim Kompilieren: Erwarteter Asudruck. Ein EndIf nimmt er auch nicht :-(
Hat jemand eine Idee?
Viele Grüße
Andreas

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable mit If Bedingung
13.11.2014 14:04:39
Hajo_Zi
Hallo Andreas,
If Cells(4, 3).Value = "X" Then Var =Cells(4, 1).Value

AW: Variable mit If Bedingung
13.11.2014 14:15:53
Andreas
Hallo Hajo,
das ging ja schnell :-)
Leider stellt mich die Lösung vor ein neues Problem da miene Variable, die ich benötige zusammengesetzt werden sollte.
z.b. so:
Var = If Cells(4, 3).Value = "X" Then Cells(4, 2).Value & "; " & If Cells(4, 4).Value = "X" Then Cells(4, 2).Value & "; " & .....
Das quasi für die Zellen 4-40. Immer wenn ein X in einer Zelle steht, soll die Zelle davor zu der Variable hinzugefügt werden. (Sollte am ende so aussehen: 0013 ; 0014 ; usw.
Das bekomme ich so mit der Lösung nicht hin :-(
Hast du da eine andere Idee?
Grüße
Andreas

Anzeige
AW: Variable mit If Bedingung
13.11.2014 14:19:02
Hajo_Zi
Hallo Andreas,
dazu kann ich nichts schreiben, mein VBA Editor lehnt die Befehlszeile ab.
Mir ist auch nicht klar was Du willst.

AW: Variable mit If Bedingung
13.11.2014 14:23:52
yummi
Hallo Andreas,
dann merk dir den Wert undhänge den nächsten mit an

Sub TEST_Var()
Dim Var As String
If Cells(4, 3).Value = "X" Then
for i = 4 to 8
Var = Var & Cells(i, 2).Value & ";"
next i
end if
MsgBox Var
End Sub
Gruß
yummi

Anzeige
AW: Variable mit If Bedingung
13.11.2014 14:43:10
Andreas
Hallo Yummi,
das kommt dem was ich brauche son sehr nahe. Jetzt muss er nur noch die nehmen bei dem ein x steht.
Z.b. steht erst in Zeile 8 und 9 ein x und vielleicht nächste woche in 8, 9 und 10.
Wie sehtze ich denn den IF um das er nur die Zellen zusammen fasst vor denen ein x steht?
Grüße
Andreas

Anzeige
AW: Variable mit If Bedingung
13.11.2014 14:53:06
Andreas
OK, hab die lösung gefunden.
Sub TEST_Var()
Dim Var As String
For i = 4 To 32
If Cells(i, 3).Value = "x" Then Var = Var & Cells(i, 2).Value & "; "
Next i
MsgBox Var
End Sub
Weißt du auch, wie ich es hinbekomme, dass das letzte Semikolon beim letzten wert nicht angezeigt wird?

Anzeige
AW: Variable mit If Bedingung
13.11.2014 14:54:07
yummi
Hallo Andreas,
dann lass die Schleife um die if Anweisung laufen (musst Du nur an deine Bereiche anpassen

Sub TEST_Var()
Dim Var As String
var = ""
for i = 4 to 8
If Cells(i, 3).Value = "X" Then
Var = Var & Cells(i, 2).Value & ";"
end if
next i
Var = left(len(var)-1)    'falls Du am ende kein ; haben willst
MsgBox Var
End Sub
Gruß
yummi
PS: Bist Du sicher dass dein VBA level gut ist? Wenn ja sollte das eigentlich kein Problem sein.

Anzeige
AW: Variable mit If Bedingung
13.11.2014 15:04:39
yummi
Hallo Andreas,
sry war falsch ;-)
Var = Left(Var, Len(Var) - 1)
so ist der aufruf korrekt
Gruß
yummi

AW: Variable mit If Bedingung
14.11.2014 07:43:06
Andreas
Na ja, da ich bis jetzt in der Firma alle Makros geschrieben habe und alle Repotings die wir haben inklusive Powerpointerstellung mit VBA erstelle und update, dachte ich zumindest, das meine VBA Kenntnisse GUT sind. Anscheinden ist "Gut" aber relativ.
Vielen Dank für dein tipp. Hilft mir auf jeden fall weiter bei meiner Aufgabe.
Grüße
Andreas

Anzeige
AW: Variable mit If Bedingung
13.11.2014 14:31:22
Andreas
OK, hätte vielleicht meine Aufgabe von vonehereins ganz beschreiben sollen.
In miener Tabelle stehen steht z.B. in Spalte A1-A30 0013 – 0028. In Spalte B ist z.B. bei 0017; 0018; 0019 ein x. Das X ist nicht immer in der gleichen Zelle, da es abhängig von einem Datumsbereich ist.
Jetzt möchte ich alle Zellen aus Spalte A wo in Spalte B ein x steht zu einer Variable zusammenfassen jeweils durch ein Semikolon getrennt.
Die Variable wird dann benutz um ein Filter in der SAP Analysis for Microsoft Excel einzustellen.
Schreibweise ist dann z.B. 0017; 0018; 0019.
Dazu versuche ich eine Lösung zu finden.
Grüße
Andreas

Anzeige
AW: Variable mit If Bedingung
13.11.2014 14:08:33
yummi
Hallo Andreas

Sub TEST_Var()
Dim Var As String
If Cells(4, 3).Value = "X" Then
Var = Cells(4, 2).Value
end if
MsgBox Var
End Sub
Gruß
yummi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Variable mit If Bedingung in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Variable in Excel VBA mit einer If-Bedingung zu verwenden, kannst du die folgende Struktur nutzen:

  1. Deklariere die Variable: Beginne mit der Deklaration deiner Variable. In diesem Beispiel verwenden wir eine String-Variable.

    Dim Var As String
  2. Setze die If-Bedingung: Nutze die If-Anweisung, um den Wert der Variable zu setzen, wenn eine bestimmte Bedingung erfüllt ist. Zum Beispiel, wenn in Zelle C4 ein "X" steht, dann nimm den Wert von B4.

    If Cells(4, 3).Value = "X" Then Var = Cells(4, 2).Value
  3. Gib den Wert aus: Verwende eine MsgBox, um den Wert der Variable anzuzeigen.

    MsgBox Var

Die komplette Subroutine könnte so aussehen:

Sub TEST_Var()
    Dim Var As String
    If Cells(4, 3).Value = "X" Then Var = Cells(4, 2).Value
    MsgBox Var
End Sub

Häufige Fehler und Lösungen

  • Fehler beim Kompilieren: Wenn du die Fehlermeldung "Erwarteter Ausdruck" erhältst, überprüfe, ob die If-Bedingung korrekt geschrieben ist. Die If-Anweisung sollte nicht mit Var = If beginnen.

  • Fehlendes End If: Achte darauf, dass jede If-Anweisung ein entsprechendes End If hat, besonders wenn du mehrere Bedingungen hast.

  • Variable nicht initialisiert: Stelle sicher, dass die Variable vor der Verwendung initialisiert wird, um unerwartete Ergebnisse zu vermeiden.


Alternative Methoden

Neben der klassischen If-Anweisung kannst du auch:

  1. Select Case verwenden: Wenn du mehrere Bedingungen hast, ist Select Case eine gute Alternative.

    Select Case Cells(4, 3).Value
       Case "X"
           Var = Cells(4, 2).Value
       Case Else
           Var = "Kein Wert"
    End Select
  2. VBA-Funktionen: Du kannst auch benutzerdefinierte Funktionen schreiben, um komplexe Logik zu handhaben.


Praktische Beispiele

Hier ist ein Beispiel, das alle Werte in einer bestimmten Spalte (z.B. Spalte B) zusammenfasst, wenn in der entsprechenden Zeile der Spalte C ein "X" steht:

Sub TEST_Var()
    Dim Var As String
    Var = ""
    For i = 4 To 32
        If Cells(i, 3).Value = "X" Then
            Var = Var & Cells(i, 2).Value & "; "
        End If
    Next i
    ' Entferne das letzte Semikolon
    Var = Left(Var, Len(Var) - 2)
    MsgBox Var
End Sub

Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang deiner Module Option Explicit ein, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen mit On Error Goto, um das Skript robuster zu gestalten.

  • Code kommentieren: Kommentiere deinen Code, um die Lesbarkeit zu verbessern, besonders wenn du komplexe Bedingungen verwendest.


FAQ: Häufige Fragen

1. Wie kann ich mehrere If-Anweisungen in einer Schleife verwenden? Du kannst mehrere If-Anweisungen innerhalb einer For-Schleife verwenden, um verschiedene Bedingungen zu überprüfen.

2. Wie entferne ich das letzte Semikolon in der Variablen? Du kannst die Left-Funktion verwenden, um das letzte Zeichen zu entfernen, wie im Beispiel gezeigt.

3. Was ist der Unterschied zwischen If-Anweisung und Select Case? Die If-Anweisung ist ideal für einfache Bedingungen, während Select Case besser für mehrere verschiedene Bedingungen geeignet ist.

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