Excel VBA zellenbedingung

  • #1
S

schlemmer_horst

Guest
hallo zusammen.

muss in einem excel sheet gewissen felder ausfüllen.

habe ein dropdown feld welches mir 10 verschiedene dinge zur auswahl gibt

beispiel
a
b
c
d
usw.

habe kein problem das später das ausgefüllt wird, was ich will
jedoch weiss ich nicht wie es funktioniert wenn ich gewisse dinge nur in a haben will, gewisse in b usw.

sprich wenn ich a auswähle soll kommen maier, chef, 0190, [email protected]
wenn ich b auswähle soll kommen müller, dvd, 0191, [email protected]

usw

jmd n tip?
 
  • #2
Hallo schlemmer_horst,

kannst du das nochmal etwas genauer erklären.
jedoch weiss ich nicht wie es funktioniert wenn ich gewisse dinge nur in a haben will, gewisse in b usw.

Soll das ein Dropdown von Dropdownfeld werden ?

Gruß Matjes :)
 
  • #3
moin matjes

im prinzip ist es so

das ich in zelle A31 ein dropdownfeld habe

in diesem steht dann

Team1
Team2
Team3
.
.
.
.
.
.
.
usw.


ich habe dann ein makro geschrieben das wie folgt aussieht

Sub Makro1()
Dim ingezeile As Long

Range(C33:H33).Select
ActiveCell.FormulaR1C1 = Name
Range(C34:H34).Select
ActiveCell.FormulaR1C1 = Position
Range(C35:H35).Select
ActiveCell.FormulaR1C1 = Telefonnummer
Range(C35:H35).Select
ActiveCell.FormulaR1C1 =->Handynr
Range(C36:H36).Select
Range(C37:H37).Select
ActiveCell.FormulaR1C1 = Emailaddi
Range(C38).Select

End Sub



wenn ich dann F5 drücke, füllt er mir auch anstandslos die felder aus
jetzt ist es so das die jeweiligen teams immer verschiedene Ansprechpartner haben.
so wie es oben steht, füllt er mir es aus, EGAL was in dem dropdownfeld angegeben ist...er soll es jedoch nur dann ausfüllen wenn z.b. Team1 ausgewählt wurde.


hintergrund ist der
das ich für jedes team die daten in dem makro hinterlegen will

das eben wenn ich TEAM1 wähle - das teil mir direkt alle ansprechpartner in bestimmte zellen einsetzt

genauso dann mit TEAM2
usw.

hoffe es ist jetzt genauer ;D mml
 
  • #4
Hallo schlemmer_horst,

mit einem Makro folgender Bauart könntest du das erstellen.

Gruß Matjes :)
Code:
Sub ZustaendigenEintragen()

 Dim s As String

->Wert aus Zelle A31 (Dropdownliste)
 s = Range(A31).Value

->entsprechend verzweigen
 Select Case s
  Case TEAM1
   Range(C33).Value = TEAM1-Name
   Range(C34).Value = TEAM1-Position
   Range(C35).Value = TEAM1-Telefonnummer
   Range(C36).Value = TEAM1-Handynr
   Range(C37).Value = TEAM1-Emailaddi
  Case TEAM2
   Range(C33).Value = TEAM2-Name
   Range(C34).Value = TEAM2-Position
   Range(C35).Value = TEAM2-Telefonnummer
   Range(C36).Value = TEAM2-Handynr
   Range(C37).Value = TEAM2-Emailaddi
  Case TEAM3, TEAM4
   Range(C33).Value = TEAM3und4-Name
   Range(C34).Value = TEAM3und4-Position
   Range(C35).Value = TEAM3und4-Telefonnummer
   Range(C36).Value = TEAM3und4-Handynr
   Range(C37).Value = TEAM3und4-Emailaddi
  Case TEAM5
   Range(C33).Value = TEAM5-Name
   Range(C34).Value = TEAM5-Position
   Range(C35).Value = TEAM5-Telefonnummer
   Range(C36).Value = TEAM5-Handynr
   Range(C37).Value = TEAM5-Emailaddi
  Case Else
   Range(C33).Value = nichts ausgewählt
   Range(C34).Value = 
   Range(C35).Value = 
   Range(C36).Value = 
   Range(C37).Value = 
 End Select
End Sub
 
  • #5
moin matjes

wenn ich dein code so benutze dann kommt bei mir immer nur nichts ausgewählt

was meinst du btw noch mit diesen 2 punkten?

'Wert aus Zelle A31 (Dropdownliste)

->entsprechend verzweigen



sry wenn ich dich schon nerv - aber ich befinde mich immernoch im vba grundaufbau

:)
 
  • #6
Hallo schlemmer_horst,

mittels der Dropdown-Liste wählst du einen Wert aus, z.B. TEAM1.

Das Makro liest den ausgewählten wert in A31 aus und speichert ihn in der Variablen s.
( s = Range(A31).Value )

Entsprechend dieser Variablen s wird dann verzweigt
( Select Case s )

Es wird dann der Zweig ausgeführt, bei dem die Variable eingetragen ist.
In diesem Fall (TEAM1)
Case TEAM1
Range(C33).Value = TEAM1-Name
Range(C34).Value = TEAM1-Position
Range(C35).Value = TEAM1-Telefonnummer
Range(C36).Value = TEAM1-Handynr
Range(C37).Value = TEAM1-Emailaddi

Wenn der Variable in keinem Zweig eingetragen ist, wird der sonst-Zweig ausgeführt:
Case Else
Range(C33).Value = nichts ausgewählt
Range(C34).Value =
Range(C35).Value =
Range(C36).Value =
Range(C37).Value =


Da das letztere der Fall ist, müßtest du z.B. den ersten Zweig umeditieren. Groß- und Kleinschreibung sind dabei zu beachten.
Nehmen wir an dein TeAm1 wird so geschrieben: TEam 1, dann müßtest du die Zeile
Code:
Case TEAM1
in
Code:
Case TEam 1
ändern, sonst wird die Bezeichnung nicht erkannt.

Ich hab den Case Else - Zweig noch ein wenig geändert, damit du eine Meldung erhälst.
Code:
Sub ZustaendigenEintragen()

 Dim s As String

->Wert aus Zelle A31 (Dropdownliste)
 s = Range(A31).Value

->entsprechend verzweigen
 Select Case s
  Case TEAM1
   Range(C33).Value = TEAM1-Name
   Range(C34).Value = TEAM1-Position
   Range(C35).Value = TEAM1-Telefonnummer
   Range(C36).Value = TEAM1-Handynr
   Range(C37).Value = TEAM1-Emailaddi
  Case TEAM2
   Range(C33).Value = TEAM2-Name
   Range(C34).Value = TEAM2-Position
   Range(C35).Value = TEAM2-Telefonnummer
   Range(C36).Value = TEAM2-Handynr
   Range(C37).Value = TEAM2-Emailaddi
  Case TEAM3, TEAM4
   Range(C33).Value = TEAM3und4-Name
   Range(C34).Value = TEAM3und4-Position
   Range(C35).Value = TEAM3und4-Telefonnummer
   Range(C36).Value = TEAM3und4-Handynr
   Range(C37).Value = TEAM3und4-Emailaddi
  Case TEAM5
   Range(C33).Value = TEAM5-Name
   Range(C34).Value = TEAM5-Position
   Range(C35).Value = TEAM5-Telefonnummer
   Range(C36).Value = TEAM5-Handynr
   Range(C37).Value = TEAM5-Emailaddi
  Case Else
   If s =  Then
    MsgBox Nichts ausgewählt.
   Else
    MsgBox _
     Ausgewählten Begriff nicht erkannt. & vbLf & _
     Begriff:-> & s &->
   End If
 End Select
End Sub


Gruß Matjes :)
 
  • #7
ok perfect
das hab ich jetzt verstanden.

und das makro so funktioniert auch.

danke erstmal hierfür =)

das makro selber muss ich jetzt ja noch instinktiv ansteuern.
gibts da eine möglichkeit das makro so zu schreiben das wenn ich aus dem dropdown feld etwas wähle mir es das makro direkt anstösst?

bislang ist das dropdown feld ja nur - ich sag mal lose dahängend.

verstehst du?

aber so bislang
vielen vielen dank matjes

du bist wirklich ein vba gott :1
 
  • #8
Hallo schlemmer_horst,

wenn du folgendes Makro in die Code-Seite des Blattes packst, sollte der Aufruf automatisch erfolgen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
 Const cDropDownZelle = A31
 
->eine Zelle geändert ?
 If Target.Count = 1 Then
 ->Adresse der DropDown-Zelle ?
  If Target.Address(False, False) = cDropDownZelle Then
  ->Inhalt nicht leer ?
   If Target.Value <>  Then
   ->entsprechend ausfüllen
    Call ZustaendigenEintragen
   End If
  End If
 End If
End Sub

Die Code-Seite des Blattes erreichst Du am einfachsten, wenn du die Blattlasche selektierst -> rechte Maustaste-> Code anzeigen wählst.

Gruß Matjes :)
 
  • #9
hahaahahahahah
ich liebe dich

schick mir deine kontodaten ich überweis dir geld :D

du bist perfect

matjes you are my hero

(wo ist der gott smilie, oder der kuss smilie ;D )

vielen vielen dank
 
Thema:

Excel VBA zellenbedingung

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben