Hallo
Natürlich ist nach meiner zweiwöchigen Abwesenheit alles weg hier im Forum. Reinhard, falls Du dies liest, erstmal vielen Dank für die letzte Hilfe. Ich möchte folgendes Makro erweitern mit elsif.
Sub tt()
Dim Zei As Long, Wert
Wert = Worksheets(„Tabelle2“).Range(„B8“)
If CStr(Wert) = „1“ Then
With Worksheets(„Übersicht“)
For Zei = 1 To 100
If .Cells(Zei, 3) Like „5V350A*“ Then .Cells(Zei, 4).Interior.ColorIndex = IIf(CStr(Wert) = „1“, 4, 22)
Next Zei
End With
End If
End Sub
Hier steht, wenn in Tabelle2 in der Zelle B8 der Wert 1 steht, dann…ich möchte nun, dass es die Zelle im Worksheet „Übersicht“ ROSA färbt, wenn der Wert 0 steht.
Zweitens, wie kann ich jetzt mehrere Bedingungen einfügen?
Abgeändert (Range D10 und „Antenna“) würde das so aussehen: , aber wie füge ich das ganze mit dem obigen zusammen?
Sub tt()
Dim Zei As Long, Wert
Wert = Worksheets(„Tabelle2“).Range(„D10“)
If CStr(Wert) = „1“ Then
With Worksheets(„Übersicht“)
For Zei = 1 To 100
If .Cells(Zei, 3) Like „Antenna*“ Then .Cells(Zei, 4).Interior.ColorIndex = IIf(CStr(Wert) = „1“, 4, 22)
Next Zei
End With
End If
End Sub
Hi Christian,
Natürlich ist nach meiner zweiwöchigen Abwesenheit alles weg
hier im Forum.
„Meine Artikel“ !
Option Explicit
Sub tt()
Dim Zei As Long, Wert
Wert = Worksheets("Tabelle2").Range("B8")
With Worksheets("Übersicht")
For Zei = 1 To 100
If .Cells(Zei, 3) Like "5V350A\*" Or .Cells(Zei, 3) Like "Antenna\*" Then
.Cells(Zei, 4).Interior.ColorIndex = IIf(CStr(Wert) = "1", 4, 22)
End If
Next Zei
End With
End Sub
oder
Sub tt2()
Dim Zei As Long, Wert As String
Wert = CStr(Worksheets("Tabelle2").Range("B8"))
With Worksheets("Übersicht")
For Zei = 1 To 100
Select Case True
Case .Cells(Zei, 3) Like "5V350A\*", .Cells(Zei, 3) Like "Antenna\*"
.Cells(Zei, 4).Interior.ColorIndex = IIf(CStr(Wert) = "1", 4, 22)
Case Else
' nix
End Select
Next Zei
End With
End Sub
Gruß
Reinhard
Ich grüsse Dich Reinhard!
Ging wiedermal prompt Deine Antwort. Danke!
Hab ich mich wohl falsch ausgedrückt,
zwei sachen als erweiterung wünschte ich mir:
-
Bei einer 1 soll es die Zelle grün färben (1.Version) oder bei einer 0 die Zelle Rosa (Neu).
-
Die erste Bedingung haben wir, hier Beispiel „5V350A“. Hinzu kommt eine zweite Bedingung, wenn in „Tabelle2“ Zelle D10 eine 1 steht…(weiter wie bei „5V350A“ jedoch mit „Antenna“).
Erklärung: In Tabelle 2 erfasse ich die erforderlichen Messmittel zu den einzelnen Baugruppen (hier 5V350A und Antenna), summiere > ergibt eine 1 oder eine 0. Mit dem Marko-nachgucken in der Tabelle 2 habe ich in der Übersicht die Zellen eingefärbt und weiss, ob die Reparatur einer Baugruppe möglich ist.
- Bei einer 1 soll es die Zelle grün färben (1.Version) oder
bei einer 0 die Zelle Rosa (Neu).
- Die erste Bedingung haben wir, hier Beispiel „5V350A“.
Hinzu kommt eine zweite Bedingung, wenn in „Tabelle2“ Zelle
D10 eine 1 steht…(weiter wie bei „5V350A“ jedoch mit
„Antenna“).
Erklärung: In Tabelle 2 erfasse ich die erforderlichen
Messmittel zu den einzelnen Baugruppen (hier 5V350A und
Antenna), summiere > ergibt eine 1 oder eine 0. Mit dem
Marko-nachgucken in der Tabelle 2 habe ich in der Übersicht
die Zellen eingefärbt und weiss, ob die Reparatur einer
Baugruppe möglich ist.
Hi Christian,
kannst du mal eine kleine Beispieldatei hochladen wo du manuell so färbst wie gewünscht und ich dann evtl. erkennen kann welch Logik dajintersteckt.
Hochladen geht bei http://www.rapidshare.de oder http:/wwww.badongo.com o.ä.
Gruß
Reinhard
Ciao Reinhard,
der Firmenserver blockt gewisse Seiten und so, daher muss ich dies daheim ausprobieren. Ich probiere es diese Woche aus.
Man hört sich…
Gruss Christian
Hoi Reinhard,
ähm wie sollte das gehen mit dem hochladen einer Datei?
Gruss,
Christian
ähm wie sollte das gehen mit dem hochladen einer Datei?
Hi Christian,
ist jeweils beschrieben, bei badongo brauchste da nur ein Häkchen machen, bei Jugendschutz das Yes auswählen, beliebigen Text bei Beschreibung eingeben, die Datei auswählen und „Uploaden“.
Dann wird dir ein Link angezeigt, den hier posten.
Bei Rapidshare geht das ähnlich.
Gruß
Reinhard
Ok Reinhard, hier hab ich was kleines gemacht.
http://www.badongo.com/file/1687164
Die Tabelle wird laufend ergänzt und enthält eine Unmenge von verschiedenen Baugruppen. ICh möchte nur für die wichtigsten die Betriebsmittelverfügbarkeit checken.
Bin gespannt auf ein Zeichen von Dir. Danke schon und einen schönen Abend noch!
Gruss Christian
http://www.badongo.com/file/1687164
Die Tabelle wird laufend ergänzt und enthält eine Unmenge von
verschiedenen Baugruppen. ICh möchte nur für die wichtigsten
die Betriebsmittelverfügbarkeit checken.
Hi Christian,
wichtig ist dass die gesuchten Teile fett formatiert sind.
Tabelle:
C:\Download\[test\_auftr\_ge.xls]!Tabelle2
│ A │ B │
───┼───────────────────────────────┼────────────────┤
3 │ Folgende Prüfmittel brauchts: │ │
4 │ **5V350A** │ vorhanden (=1) │
5 │ Q-02937 │ 1 │
6 │ Q-05026 │ 1 │
7 │ Q-05031 │ 1 │
8 │ │ │
9 │ │ │
10 │ **Datalink** │ vorhanden (=1) │
11 │ Q-10102 │ 0 │
12 │ Q-09201 │ 1 │
───┴───────────────────────────────┴────────────────┘
Tabelle:
C:\Download\[test\_auftr\_ge.xls]!übersicht
│ C │ D │ E │
──┼────────────────────────────┼───────────────────────────┼────────┤
3 │ Baugruppe/Serialnummer │ Betriebsmittel verfügbar? │ │
4 │ Datamemory #pe-5-9100 │ Zellfarbe ist lila │ FALSCH │
5 │ 5V350A Power Supply 870032 │ Zellfarbe ist grün │ WAHR │
6 │ Datamemory #pe-5-9094 │ Zellfarbe ist lila │ FALSCH │
7 │ Antenna #1001 │ Zellfarbe ist lila │ FALSCH │
8 │ Datalink Karte #001 │ Zellfarbe ist grün │ FALSCH │
9 │ 5V350A Power Supply 870054 │ Zellfarbe ist grün │ WAHR │
──┴────────────────────────────┴───────────────────────────┴────────┘
Benutzte Formeln:
E4: =Mappe1!tt(C4)
E5: =Mappe1!tt(C5)
E6: =Mappe1!tt(C6)
E7: =Mappe1!tt(C7)
E8: =Mappe1!tt(C8)
E9: =Mappe1!tt(C9)
D4 hat folgende Bedingte Formatierung(en)
Formel ist: =E4=WAHR
Farbe rot
Formel ist: =E4=Falsch
Farbe lila
Die anderen Zellen in D entsprechend. Es gelang mir nicht direkt die Funktion tt() in die bed. Formatierung einzubauen, deshalb Umweg über Spalte E, Schriftfarbe weiß in E
in ein Modul1:
Option Explicit
Function tt(ByVal Zelle As Range) As Boolean
Dim Zei As Long, Z As Long, Summe As Long
With Worksheets("Tabelle2")
For Zei = 4 To .Range("A65536").End(xlUp).Row
If .Cells(Zei, 1).Font.Bold = True Then
If Left(Zelle.Value, Len(.Cells(Zei, 1))) = .Cells(Zei, 1) Then
Summe = 0
Z = Zei + 1
While (.Cells(Z, 1).Value "")
Summe = Summe + .Cells(Z, 2)
Z = Z + 1
Wend
If Summe = (Z - Zei - 1) Then tt = True
End If
End If
Next Zei
End With
End Function
Gruß
Reinhard
Hey Reinhard! Vielen Dank für Deine Mühe; Du hast es auch sehr gut beschrieben!
hab noch eine Frage:
Diese Function akzeptiert es nicht in einem Modul1.
Was passiert bei mir:
Ich eröffne Modul, copy den Code rein. Drücke auf Button ausführen, dann verlangt einen Markonamen und nach dessen Eingabe steht die Zeile
Sub test ()
End Sub
Warum gelingt mir die Einbindung Deines Codes nicht?
Hi Christian,
Diese Function akzeptiert es nicht in einem Modul1.
Oh doch, sie wird akzeptiert.
Ich eröffne Modul, copy den Code rein. Drücke auf Button
ausführen, dann verlangt einen Markonamen und nach dessen
Eingabe steht die Zeile
Ist normal, Funktionen kannste so nicht ausführen lassen.
Und makros die einen parameter erwrten werden nicht angezeigt.
Sub test ()
End Sub
Eija, ist klar, da du nix ausgewählt hast.
Warum gelingt mir die Einbindung Deines Codes nicht?
Du kannst die Funktion wie gezeigt in Excel einbinden als Funktiosaufruf, oder in Vba mit sowas:
Sub Test()
msgbox tt(Range(„A1“)
end sub
Gruß
Reinhard
Guten Morgen Reinhard
Vielleicht liegt es am Montag…oder meine Hinrzellen sind nicht so auf Excel/VBA getrimmt. Ich hab noch meine Mühe mit dem umsetzen Deiner dankbaren Tips.
In Excel den Funktionsaufruf einbinden ist nicht so toll, dort hatte ich Mühe mit dem =Mappe1!tt(C4).
> keine Ahnung was für eine Mappe1, hab ja kein solches File.
Daher möchte ich mich auf das VBA konzentrieren; Du schreibtest
„Sub Test()
msgbox tt(Range(„A1“)
end sub“
> Ich hab ja nix in Zelle A1.
Irgendwie hab ich den Faden verloren, wo schreibe ich den den Funktionscode?
Naja, ist eh nicht so mein Tag heute. Wünsche Dir einen besseren Tag und guten Start!
Gruss
Christian
Hi Christian,
In Excel den Funktionsaufruf einbinden ist nicht so toll, dort
hatte ich Mühe mit dem =Mappe1!tt(C4).
> keine Ahnung was für eine Mappe1, hab ja kein solches
File.
Wenn du Excel startest ohne eine bestimmte Datei, ggfs noch auf Datei–Neu klickst, ist die sichtbare Datei/Mappe Mappe1.
Wenn du eine mapp mi Namen „Meinemappe.xls“ öffnest in der in Modul1 der Code steht, so kannst du natürlich nicht
=Mappe1!tt(C4) nehemen sondern
=tt(C4)
bzw.
=Meinemappe!tt(C4)
Daher möchte ich mich auf das VBA konzentrieren; Du
schreibtest
„Sub Test()
msgbox tt(Range(„A1“)
end sub“
> Ich hab ja nix in Zelle A1.
Na, dann schreib was rein -) Ist doch nur zum Testen, d.h. die Zelle musst du anpassen an eine Zelle wo auch was drinsteht.
Irgendwie hab ich den Faden verloren, wo schreibe ich den den
Funktionscode?
Alt+F11, wenn es kein Modul1 gibt dann Einfügen–Modul, dorthinein gehört der Code.
Gruß
Reinhard
Hallo Reinhard
Danke für Deine Mühe, ich habe es nun anders gelöst, passt für mich.
Ich habe einen Code von Dir genommen und erweitere jetzt File.
Letzte Frage zu diesem Artikel:
Anbei der Code. Wie Du siehst, habe ich (und werde noch) mehrere Makros schreiben je für eine Baugruppe.
Gibt es die Möglichkeit mit einem Overall-Makro verschiedene Makros auszuführen?
Sodass ich die unteren zwei Makros (Power Modul + Focus) mit einem Button gleichzeitig ausführen kann. Sonst müsste ich ja immer Extras - Makro anwählen und ausführen.
Gruess Christian
Sub Power Modul()
Dim Zei As Long, Wert
Wert = Worksheets(„Tabelle2“).Range(„B8“)
With Worksheets(„Übersicht“)
For Zei = 1 To 100
If .Cells(Zei, 3) Like „5V350A*“ Then
.Cells(Zei, 4).Interior.ColorIndex = IIf(CStr(Wert) = „1“, 4, 22)
End If
Next Zei
End With
End Sub
Sub Focus()
Dim Zei As Long, Wert
Wert = Worksheets(„Tabelle2“).Range(„B14“)
With Worksheets(„Übersicht“)
For Zei = 1 To 100
If .Cells(Zei, 3) Like „Focus Coil*“ Then
.Cells(Zei, 4).Interior.ColorIndex = IIf(CStr(Wert) = „1“, 4, 22)
End If
Next Zei
End With
End Sub
Anbei der Code. Wie Du siehst, habe ich (und werde noch)
mehrere Makros schreiben je für eine Baugruppe.
Gibt es die Möglichkeit mit einem Overall-Makro verschiedene
Makros auszuführen?
Hi Christian,
sub overall()
call Power_Modul ’ Leerzeichen sind m.W. im Makronamen verboten
call Focus
end sub
Gruß
Reinhard
Sub Power Modul()
Dim Zei As Long, Wert
Wert = Worksheets(„Tabelle2“).Range(„B8“)
With Worksheets(„Übersicht“)
For Zei = 1 To 100
If .Cells(Zei, 3) Like „5V350A*“ Then
.Cells(Zei, 4).Interior.ColorIndex =
IIf(CStr(Wert) = „1“, 4, 22)
End If
Next Zei
End With
End Sub
Sub Focus()
Dim Zei As Long, Wert
Wert = Worksheets(„Tabelle2“).Range(„B14“)
With Worksheets(„Übersicht“)
For Zei = 1 To 100
If .Cells(Zei, 3) Like „Focus Coil*“ Then
.Cells(Zei, 4).Interior.ColorIndex =
IIf(CStr(Wert) = „1“, 4, 22)
End If
Next Zei
End With
End Sub