Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1540to1544
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
Inhaltsverzeichnis

Hilfe Piet abgelaufener Beitrag

Hilfe Piet abgelaufener Beitrag
07.02.2017 15:27:55
Blue
Servus Piet,
du hast mir letzte Woche in einem Beitrag weiter geholfen.
Nur leider kam ich jetzt erst dazu deinen letzten Beitrag zu testen.
Und dabei bin ich jetzt irgendwie durcheinander.
Muß ich im Modulblatt und Tabellenblatt das Makro eintragen, oder sind das unterschiedliche oder muss ich nur in eins etwas eintragen.
Bitte helfe mir dabei nochmal.
Hier nochmal der alte Beitrag:
https://www.herber.de/forum/archiv/1536to1540/1538320_VBA_Zellen_im_Bereich_formatieren.html
mfg Blue Bird

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

Betreff
Datum
Anwender
Anzeige
AW: Hilfe Piet abgelaufener Beitrag
07.02.2017 22:42:53
Piet
Hallo BlueBird,
es gibt zwei Makros die völlig unabhaengig voneinander laufen. Das erste Makro gehört in ein Modul. Es kann über einen Button gestartet werden, und bearbeitet das ganze Blatt! Erkennbar am Text: - Option Explicit '31.1.2017 Piet Herber Forum
Das zweite Makro war ja auf deine Bitte, das direkt bei der Eingabe von "X" in die Tabelle sofort ein Makro starten soll. Das zweite Makro hat auch keine For Next Schleife für UsedRange, sondern sucht die Texte nur von der aktuellen Eingabezelle aus. Da steht auch oben drüber als Kommentar: - 'direkt ins Tabellenblatt kopieren - (kein Modulblatt!!)
Für das zweite Makro musst du noch alle Const Anweisungen für Texte im Modulblatt in Public Const umwandeln!!
Const Txt1 bis Const Farbe aendern in - Public Const Txt1 bis Public Const Farbe
Das Makro was in die Tabelle gehört erkennst du auch am Code Teil "Target.Value" anstatt dem Befehl ActiveCell.Value! In der Tabelle muss ich für die AktiveZelle mit "Target" arbeiten!!
Ich hoffe diese Information hift dir weiter. Beide Makros arbeiten völlig unabhaenigig, jedes für sich allein!
mfg Piet
Anzeige
AW: Hilfe Piet abgelaufener Beitrag
08.02.2017 06:39:11
Blue
Servus Piet,
jetzt habe ich es hinbekommen, allerdings nur wenn im Tabellenblatt und Modulblatt ein Makro enthalten ist.
Du hast allerdings ja geschrieben das die Makros unabhängig von einander funktionieren.
Vlt kannst du mal in meiner Datei schauen was ich falsch gemacht habe.
https://www.herber.de/bbs/user/111297.xlsm
Des weiteren noch einen Wunsch, wäre es möglich das wenn ich das X wieder entferne die Färbung der zuvor durch das Makro gefärbten Zellen wieder zu entfernen.
Das Quasi nur wenn das X auch vorhanden auch nur die bestimmten Zellen gefärbt sind.
PS.: beide Makro Varianten würden mir sehr weiter helfen, besonders für zukünftige Arbeiten.
mfg Blue Bird
Anzeige
Du mußt nachbessern ...
08.02.2017 10:59:26
 Matthias
Hallo
Das geht so nicht wie Du es im Moment benutzt.
Nur mal 2 Dinge:
Sheets("Tabelle1").Select

Ein Register mit Namen "Tabelle1" gibts aber nicht.


Desweiteren musst Du den Bereich eingrenzen in denen Du das "X"/"x" zulassen willst!
Mach mal in B2 ein X, dann siehst Du was ich meine.
Es muss also eine Fehlerbehandlung mit eingepflegt werden.
Eine zusätzliche Möglichkeit wäre Blatt- und Zellschutz.
Dort kannst Du festlegen das Benutzer nur nicht geperrte Zellen auswählen kann.
Gruß Matthias
Bsp. mit bedingter Formatierung ...
08.02.2017 15:05:18
 Matthias
Hallo
Des weiteren noch einen Wunsch, wäre es möglich das wenn ich das X wieder entferne die Färbung der zuvor durch das Makro gefärbten Zellen wieder zu entfernen.
Das Quasi nur wenn das X auch vorhanden auch nur die bestimmten Zellen gefärbt sind.

Das geht übrigens auch mit der bedingten Formatierung
Für die Zeilen 3-12 hab ich das mal eingepflegt.
https://www.herber.de/bbs/user/111320.xlsx
Der Rest ist dann Fleißarbeit für Dich.
Gruß Matthias
Anzeige
AW: Hilfe Piet abgelaufener Beitrag
08.02.2017 19:49:14
Piet
Hallo BlueBird
Hallo Michael, Hut ab vor deiner Lösung mit bedingter Formatierung. Eine sehr gute Arbeit. Weil ich mich mit dem Thema nie beschaeftigt habe fehlte mir hierzu das nötige Fachwissen. Ich bin richtig beeindruckt wie einfach diese Aufgabe damit gelöst werden kann!
Hallo BlueBird,
der vollstaendigkeit halber hier noch eine geanderte Makros Lösung von mir. Die Entscheidung was du einsetzen willst liegt bei dir. Im Modulblatt muss natürlich der 1.Befehl Worksheets("Tabelle1").Select auf den richtigen Namen "Laufzettel" geaendert werden. Der unten beigefügte Code gehört natürlich ins Tabellenblatt, er bezieht sich ja auf die Target Funktion!
mfg Piet

Private Sub Worksheet_Change(ByVal Target As Range)
Dim TarTxt As String, TFarbe As Variant
On Error Resume Next
TarTxt = UCase(Target): TFarbe = Farbe
If TarTxt = Empty Then TFarbe = xlNone
Target.Interior.ColorIndex = TFarbe
'suche nach oben nach Text oder "LPHxx"
For j = 1 To 7
If Target.Offset(-j, 0).RowHeight  Empty Or LTxt  Empty Then
'suche ganzes Wort "Prüfung" oder "Freigabe"
If Txt = "Prüfung" Or Txt = "Freigabe" Then
Target.Offset(-j, 0).Interior.ColorIndex = TFarbe
End If
'suche Text "LPHxx" in String
If InStr(Txt, "LPH 4") Or InStr(Txt, "LPH 5") Or _
InStr(Txt, "LPH4") Or InStr(Txt, "LPH5") Then
Target.Offset(-j, 0).Interior.ColorIndex = TFarbe
End If
'suche L-Text "LPHxx" in Left String  (Verundzelle)
If InStr(LTxt, "LPH 4") Or InStr(LTxt, "LPH 5") Or _
InStr(LTxt, "LPH4") Or InStr(LTxt, "LPH5") Then
Target.Offset(-j, -1).Interior.ColorIndex = TFarbe
End If
End If
Next j
'suche nach links mehrere Texte (Pläne)
For j = 1 To 4
If Target.Offset(0, -j).ColumnWidth  Empty Then
If Txt = Txt1 Or Txt = Txt2 Or Txt = Txt3 Then
Target.Offset(0, -j).Interior.ColorIndex = TFarbe
Else
'Pläne mit Space und LF im Text
If Left(Txt, 8) = Left(QTxt4, 8) And _
Right(Txt, 12) = Right(QTxt4, 12) Then
Target.Offset(0, -j).Interior.ColorIndex = TFarbe
End If
If Left(Txt, 8) = Left(QTxt5, 8) And _
Right(Txt, 12) = Right(QTxt5, 12) Then
Target.Offset(0, -j).Interior.ColorIndex = TFarbe
End If
End If
End If
If Target.Offset(0, -j).Column = 2 Then Exit For
Next j
End Sub

Anzeige
=ERSETZEN("Michael";1;7;"Matthias") ;-) owT
08.02.2017 20:15:21
 Matthias
AW: =ERSETZEN("Michael";1;7;"Matthias") ;-) owT
08.02.2017 20:58:31
Piet
Hallo Michael,
konkrete Frage an dich, kann bedingte Formatierung in Zellen auch mit VBA eingefügt werden?
Ist für mich völliges Neuland, ich habs noch nie probiert.
mfg Piet
nochmal, ich bin Matthias! owT
08.02.2017 23:37:53
Matthias
AW: Hilfe Piet abgelaufener Beitrag
13.02.2017 07:19:39
Blue
Servus Piet,
danke dir wieder viemals für deine Hilfe.
Leider habe ich wieder ein kleines Problem.
Ich musste meine Tabellen etwas anpassen da noch etwas eingepflegt werden musste und nun funktioniert es an einer Stelle nicht mehr.
Die Zelle in der LPH5 Ausführungsplanung steht musste ich noch eine Spalte einfügen und nun findet er in der Spalte von Freigabe nicht mehr LPH5 Ausführungsplanung da dieses in einer Verbunden Zelle von 3 steht.
Könntest mir sagen wie ich das Makro anpassen müsste damit das wieder funktioniert.
Userbild
mfg Blue Bird
Anzeige
mein Beitrag interessiert Dich nicht? owT
13.02.2017 20:10:23
Matthias
AW: mein Beitrag interessiert Dich nicht? owT
14.02.2017 09:08:11
Blue
Servus Mattthias L,
sorry für die späte Antwort, danke für deinen Vorschlag.
Den habe ich mir natürlich auch angeschaut und werden ihn eventuell auch anwenden.
Allerdings brauche ich für zukünftige Situationen eine Makro Lösung daher liegt mein Augenmerk weiterführend darauf.
mfg Blue Bird

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige