Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Variable mit If Bedingung

Betrifft: Variable mit If Bedingung von: Andreas Schillingq
Geschrieben am: 13.11.2014 14:02:29

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

  

Betrifft: AW: Variable mit If Bedingung von: Hajo_Zi
Geschrieben am: 13.11.2014 14:04:39

Hallo Andreas,

If Cells(4, 3).Value = "X" Then Var =Cells(4, 1).Value
GrußformelHomepage


  

Betrifft: AW: Variable mit If Bedingung von: Andreas Schillingq
Geschrieben am: 13.11.2014 14:15:53

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


  

Betrifft: AW: Variable mit If Bedingung von: Hajo_Zi
Geschrieben am: 13.11.2014 14:19:02

Hallo Andreas,

dazu kann ich nichts schreiben, mein VBA Editor lehnt die Befehlszeile ab.
Mir ist auch nicht klar was Du willst.

GrußformelHomepage


  

Betrifft: AW: Variable mit If Bedingung von: yummi
Geschrieben am: 13.11.2014 14:23:52

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


  

Betrifft: AW: Variable mit If Bedingung von: Andreas Schillingq
Geschrieben am: 13.11.2014 14:43:10

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


  

Betrifft: AW: Variable mit If Bedingung von: Andreas Schillingq
Geschrieben am: 13.11.2014 14:53:06

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?


  

Betrifft: AW: Variable mit If Bedingung von: yummi
Geschrieben am: 13.11.2014 14:54:07

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.


  

Betrifft: AW: Variable mit If Bedingung von: yummi
Geschrieben am: 13.11.2014 15:04:39

Hallo Andreas,

sry war falsch ;-)

Var = Left(Var, Len(Var) - 1)

so ist der aufruf korrekt


Gruß
yummi


  

Betrifft: AW: Variable mit If Bedingung von: Andreas Schillingq
Geschrieben am: 14.11.2014 07:43:06

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


  

Betrifft: AW: Variable mit If Bedingung von: Andreas Schillingq
Geschrieben am: 13.11.2014 14:31:22



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


  

Betrifft: AW: Variable mit If Bedingung von: yummi
Geschrieben am: 13.11.2014 14:08:33

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


 

Beiträge aus den Excel-Beispielen zum Thema "Variable mit If Bedingung"