Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Wenn dann Funktion
11.04.2018 10:48:00
Andre
Da ich absoluter VBA Anfänger bin und ich nicht weiterkomme, wende ich mich mal an euch :-)
Ich versuche grade ein Makro zusammen zu Bauen welches so funktionieren soll:
Wenn ab der Zelle B42 „poweredOn“ steht, sollen die Zellen C42 bis G42 nicht angefasst werden.
Wenn in der Zelle B42 „poweredOff“ steht, sollen die Zellen C42 bis G42 gelöscht werden und jede zweite Spalte sollte von A42 bis hier wieder der (mein) Knackpunkt mit dem Variablenende, Farblich Hinterlegt werden.
Da die Zeilen Zahl Variabel ist, würde ich da gerne eine Schleife drüber laufen haben.
Ich wäre für jeden Tipp dankbar!!!
Viele Grüße und schonmal 1000 Dank!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Crosspost ohne Hinweis
11.04.2018 11:33:10
Werner
Hallo,
würdest du die Beiträge in den verschiedenen Foren bitte untereinander verlinken.
Gruß Werner
AW: Wenn dann Funktion
11.04.2018 20:07:32
Robert
Hallo,
ganz klar ist mir nicht, was Du willst.
Du schreibst "Wenn ab der Zelle B42 „poweredOn“ steht, sollen die Zellen C42 bis G42 nicht angefasst werden". Soll das heißen, wenn in B42 oder z. B. in B100 oder A120 "poweredOn" steht, soll nichts passieren und nur wenn da nichts gefunden wird, soll nach „poweredOff“ in Zelle B42 geprüft werden? Was verstehst Du in diesem Zusammenhang unter "ab Zelle B42"? Nur die Zellen in der Spalte B unterhalb dieser Zelle, oder auch Zellen in anderen Spalten unter der Zeile 42 und rechts neben der Spalte B?
Außerdem möchtest Du, dass "jede zweite Spalte sollte von A42 bis hier ... farblich hinterlegt werden". Was meinst Du mit "bis hier"?
Nachstehendes Makro löscht den Inhalt der Zellen C42:G42 und markiert jede 2. Spalte von Spalte A bis G mit einem gelben Hintergrund, wenn in der Zelle B42 „poweredOff“ steht.
Sub Test()
Dim lS As Long
If Range("B42") = "poweredOff" Then
Range("C42:G42").ClearContents
For lS = 2 To Range("G42").Column Step 2
With Columns(lZ).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Next
End If
End Sub

Gruß
Robert
Anzeige
AW: Wenn dann Funktion
12.04.2018 12:25:49
Andre
Hi Robert,
als erstes mal danke für deine Hilfe, auch wenn ich mich scheinbar sehr unverständlich ausgedrückt habe, sorry dafür!
Die Tabelle wird von A42 bis G42 automatisch aus einer anderen Datei befüllt. In A42 wird ein Name eingetragen der stehen bleiben soll und in B42 steht entweder "poweredOn" oder "poweredOff". Wenn in B42 "poweredOn" steht, sollen die Werte in C42 bis G42 für eine Berechnung stehen bleiben. Wenn aber "poweredOff" in B42 steht, sollen die Zellen C42 bis G42 gelöscht werden.
Das Markieren der Zeilen habe ich nun so gemacht:
Dim Zeile As Long
Dim ZeileEnd As Long
With Tabelle1
ZeileEnd = .UsedRange.Rows.Count
For Zeile = 42 To .UsedRange.Rows.Count
If Zeile Mod 2 = 0 Then
.Rows(Zeile).Interior.ColorIndex = 15
End If
Next Zeile
End With

Schöner fände ich aber wenn er nicht die ganze Zeile, sondern nur den Bereich von A42 bis G42 einfärben würde.
Anzeige
AW: Wenn dann Funktion
12.04.2018 13:54:32
Robert
Hallo Andre,
neuer Deutungsversuch: Du schreibst zwar die ganze Zeit von dem Bereich A42 bis G42, der mit Daten aus einer anderen Datei befüllt wird, ich gehe aber mal davon aus, dass die Daten auch in die Folgezeilen eingefügt werden. Also nicht nur im Bereich A42 bis G42 sondern z. B. von A42 bis G100. Wenn dem so sein sollte, löscht nachstehendes Makro den Bereich der Spalten C bis G in der jeweiligen Zeile, wenn in der Spalte B ab der Zeile 42 "PowerOff" steht. Gleichzeitig werden in dem Bereich ab der Zeile 42 in jeder zweiten Zeile die Spalten A bis G markiert.
Sub Test2()
Dim lZ As Long, aZ As Long
lZ = Range("B" & Rows.Count).End(xlUp).Row   'letzte befüllte Zeile in Spalte B
For aZ = 42 To lZ
If Range("B" & aZ) = "poweredOff" Then
Range("C" & aZ & ":G" & aZ).ClearContents
End If
If aZ Mod 2 = 0 Then
Range("A" & aZ & ":G" & aZ).Interior.ColorIndex = 15
End If
Next aZ
End Sub
Gruß
Robert
Anzeige
AW: Wenn dann Funktion
12.04.2018 17:06:11
Andre
Hi Robert,
das ist genau das was ich gesucht habe!
Ich danke dir vielmals für deine Hilfe!
Hab noch einen schönen Abend,
Viele Grüße,
Andre
AW: Wenn dann Funktion
12.04.2018 12:26:21
Andre
Hi Robert,
als erstes mal danke für deine Hilfe, auch wenn ich mich scheinbar sehr unverständlich ausgedrückt habe, sorry dafür!
Die Tabelle wird von A42 bis G42 automatisch aus einer anderen Datei befüllt. In A42 wird ein Name eingetragen der stehen bleiben soll und in B42 steht entweder "poweredOn" oder "poweredOff". Wenn in B42 "poweredOn" steht, sollen die Werte in C42 bis G42 für eine Berechnung stehen bleiben. Wenn aber "poweredOff" in B42 steht, sollen die Zellen C42 bis G42 gelöscht werden.
Das Markieren der Zeilen habe ich nun so gemacht:
Dim Zeile As Long
Dim ZeileEnd As Long
With Tabelle1
ZeileEnd = .UsedRange.Rows.Count
For Zeile = 42 To .UsedRange.Rows.Count
If Zeile Mod 2 = 0 Then
.Rows(Zeile).Interior.ColorIndex = 15
End If
Next Zeile
End With

Schöner fände ich aber wenn er nicht die ganze Zeile, sondern nur den Bereich von A42 bis G42 einfärben würde.
Viele Grüße,
Andre
Anzeige

331 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige