Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
572to576
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
572to576
572to576
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Codeproblem bei Textcheck

Codeproblem bei Textcheck
23.02.2005 10:28:44
Claudia
Guten Morgen liebes Forum,
ich komme leider mit meiner Excel-Datei nicht so recht weiter. Der folgende Code, den ich mit viel Hilfe und der Aufzeichnenfunktion zusammengefügt habe, funktioniert ganz gut:
Sub Textfeld16_BeiKlick()
With ActiveSheet
Range("A2").Select
.Unprotect Password:="123"
.ShowDataForm
Range("A2:H20").Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B2").Select
Dim I As Integer
Range("A3:A20").Rows.AutoFit
For I = 3 To 20
With Rows(I)
.RowHeight = .RowHeight + 10
End With
Next
.Protect Password:="123"
End With
End Sub
Das einzige, was mich stört, ist, dass daraus, wenn man die Tabelle dann über Datei\Senden an\Mailempfänger versendet, ein 45seitiges Dokument wird. :-(
Zu diesem Problemschen habe ich jetzt aber leider noch weitere Anforderungen an den Code erhalten:
- Ist es möglich, abhängig davon, ob Text im Bereich A2:H20 ist, jede zweite
Zeile mit einem bestimmte Grauton zu versehen?
- Ist es möglich, nur die Zeilen in der Höhe anzupassen, in denen wirklich Text ist?
Ich habe nach Recherchen einen Code gefunden:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("b3:b50")) Is Nothing Then
If Target.Text = True Then
MsgBox ("1") ' hier dein Makro
Else
Exit Sub
End If
Else
Exit Sub
End If
End Sub

Den habe ich versucht anzupassen und einzubinden. Bin aber immer gescheitert. Könntet Ihr mir vielleicht helfen?
Großes Dankeschön - auch für die Dinge, die durch Euch ich bereits lernen durfte
Claudia

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

Betreff
Datum
Anwender
Anzeige
AW: Codeproblem bei Textcheck
23.02.2005 12:46:12
Roland
Hallo Claudia,
versuchs mal so:

Sub Textfeld16_BeiKlick()
Dim I As Integer, rng As Range, bolEmpty As Boolean
With ActiveSheet
.Unprotect Password:="123"
.ShowDataForm
With Range("A2:H20")
.Sort Key1:=Range("B2"), Order1:=xlAscending
For Each rng In Range("A2:H20")
If IsEmpty(rng) Then
bolEmpty = False
Else
bolEmpty = True
Exit For
End If
Next
If bolEmpty Then
For I = 2 To 20
If I Mod 2 = 0 Then Rows(I).Interior.ColorIndex = 15
Next
End If
End With
Range("A3:A20").Rows.AutoFit
.Protect Password:="123"
End With
End Sub
Die Höhenanpassung hattest du bisher zunächst auf Autofit(=optimale Höhe) eingestellt, um sie danach pro Zeile um jeweils 10 Punkte nach oben zu erhöhen. Damit können 45 Seiten erklärt werden. Mit dem Grauton musst du mal experimentieren, ich habe hier mal 15 genommen. Ansonsten habe ich das weggelassen, was m.E. nicht nötig ist.
Gruß Roland
Anzeige
AW: Codeproblem bei Textcheck
23.02.2005 13:16:43
Claudia
Herzlichen Dank Roland. Es funkioniert auch wunderbar. Er markiert mir jeweils die zweite Zeile grau. Nur leider unabhängig davon, ob Text enthalten ist oder nicht. Wäre es möglich, dass er unterscheidet, ob Text enhalten ist und dann diese Zeilen nicht grau färbt?
Vielen lieben Dank für die Hilfe
Claudia
AW: Codeproblem bei Textcheck
23.02.2005 13:23:49
Roland
Hallo Claudia,
bevor wir aneinander vorbeireden: jetzt sucht das Makro innerhalb des Bereiches "A2:H20" nach _einer_ irgendwie gefüllten Zelle, um dann jede 2. Zeile grau zu färben. Du willst jetzt jede zweite Zeile grau haben,
-aber dann, wenn in ihr etwas steht, soll sie wieder weiß werden?!
-soll ab dieser Zeile jede 2. Zeile grau werden ?!
-soll was anderes passieren?!
Gruß Roland
Anzeige
AW: Codeproblem bei Textcheck
23.02.2005 14:10:29
Claudia
Hi Roland,
Du hast ja Recht. Ich habe mich etwas komisch ausgedrückt. Hintergrund ist, dass die Tabelle versandt wird. Die Überschrift ist grau formatiert. Um nun die darunter stehenden einzelnen Datensätze von einander abzuheben, wäre es toll, wenn die jeweils zweite Zeile, die mit Text gefüllt ist, grau markiert wird. Wenn aber kein Text mehr kommt, soll bei "keiner Hintergrundfarbe" verblieben werden. Ich weiß nun leider nicht, ob das überhaupt möglich ist. Bei den Optionen, die Du oben aufgeführt hast, wäre es glaube ich
-jede zweite Zeile ab einem Punkt (Überschrift) checken, ob Text vorhanden ist und diese Zeilen (vielleicht auch nur die Zellen?) dann grau, sonst nichts.
Ich kenne mich leider überhaupt nicht aus. :-(((
Hast Du vielleicht einen Tipp?
Ganz herzlichen Dank
Claudia
Anzeige
AW: Codeproblem bei Textcheck
23.02.2005 15:18:41
Roland
Hallo Claudia,
jetzt denke ich habe ich begriffen was du möchtest; das kann aber je nachdem ein ziemlicher "Flickenteppich" werden:

Sub Textfeld16_BeiKlick()
Dim I As Integer, j As Byte, k As Byte
With ActiveSheet
.Unprotect Password:="123"
.ShowDataForm
Range("A2:H20").Sort Key1:=Range("B2"), Order1:=xlAscending
k = 1
For I = 2 To 20
For j = 1 To 8
If Not IsEmpty(Cells(I, j)) Then
k = k + 1
Exit For
End If
Next
If k Mod 2 = 0 Then Rows(I).Interior.ColorIndex = 15
Next
Range("A3:A20").Rows.AutoFit
.Protect Password:="123"
End With
End Sub
Gruß Roland
Anzeige
AW: Codeproblem bei Textcheck
23.02.2005 15:57:55
Claudia
Hallo Roland,
der Code funktioniert leider nicht richtig. Während der Eingabe über die Datenmaske ist alles ok. Man sieht im Hintergrund wie sich jede zweite Zelle grau schattiert. Wenn jedoch die Datenmaske geschlossen wird, ist auf einmal alles ab dem letzten Wert grau markiert. Kann man das vielleicht so abändern, dass da keine Formatierung vorgenommen wird? Auch ist der Startpunkt A4 mit der ersten Formatierung. Bei der momentanen Variante wird auch die Überschrift in A2 anders gefärbt, wenn ich die Maske schließe.
Ich habe einmal versucht, zu verstehen, was Du tolles gebastelt hast. Über ein abändern der Zahlen und In-die-Röhre-gucken komme ich jedoch nicht hinaus. Könntest Du mir vielleicht noch einmal unter die Arme greifen?
Liebe Dank
Claudia
Anzeige
AW: Codeproblem bei Textcheck
23.02.2005 16:04:07
Claudia
Hallo Roland,
eine Sache konnte ich gerade klären durch Abändern der "I-Variable" auf 4. Dann ist schon einmal die Überschrift außen vor. *freu* Der Rest ist aber echt komisch. Solange man in der Datenmaske die Eintragungen vornimmt, sieht man im Hintergrund die richtige Formatierung. Nach dem Schließen der Maske wird die letzte beschriebene Zeile sowie alle anderen bis zur A20 entsprechend markiert. Auch ist vorher wirklich nur z.B. A4:H4 grau markiert. Nach dem Schließen der Form wird daraus "A?:IV?". Hilft das vielleicht?
Lieben Gruß und tausend Dank
Claudia
AW: Codeproblem bei Textcheck
Roland
Hallo Claudia,
bislang wolltest du jede 2. Zeile mit Text in grau. Wenn du nun jede 2. Zeile mit Text, aber nur die Spalten A:H in grau haben willst, musst du das nehmen:

Sub Textfeld16_BeiKlick()
Dim I As Integer, j As Byte, k As Byte
With ActiveSheet
.Unprotect Password:="123"
.ShowDataForm
Range("A2:H20").Sort Key1:=Range("B2"), Order1:=xlAscending
k = 1
For I = 4 To 20
For j = 1 To 8
If Not IsEmpty(Cells(I, j)) Then
k = k + 1
If k Mod 2 = 0 Then Range("A" & I & ":H" & I).Interior.ColorIndex = 15
Exit For
End If
Next
Next
Range("A3:A20").Rows.AutoFit
.Protect Password:="123"
End With
End Sub

Der Fehler mit dem grauen Auffüllen nach der letzten Textzeile ist ebenfalls behoben.
Nu aber:-))
Roland
Anzeige
Gelöst: Codeproblem bei Textcheck
23.02.2005 16:51:58
Claudia
Hi Robert,
super! Das klappt jetzt wirklich prima. :-) Vielen lieben Dank.
Könntest Du mir vielleicht bei Gelegenheit einmal aufschlüsseln/erklären, was Du da so gezaubert hast? Das ist wirklich total interessant, was man alles so machen kann mit Excel.
Noch einmal gaaaaaanz tollen Dank
Claudia
WG: noch ein kleines Problemchen
23.02.2005 17:05:21
Claudia
Hallo Robert,
ich will Dich wirklich nicht strapazieren, aber ich habe gerade entdeckt, dass wenn die Tabelle unter der Spalte keine Daten enthält, Excel dann eine Fragemeldung bringt (ob mit ausgewählter Markierung fortsetzen etc., kann nicht sortieren usw.). Könnte man diese Meldung noch irgendwie umgehen?
Das wäre echt super.
Noch einmal ganz herzlichen Dank für die anderen Kunststücke
Claudia
Anzeige
AW: WG: noch ein kleines Problemchen
23.02.2005 18:08:22
Roland
Hallo Claudia,
ohne Fehlermeldung gehts so:

Sub Textfeld16_BeiKlick()
Dim I As Integer, j As Byte, k As Byte
Application.DisplayAlerts = False
With ActiveSheet
.Unprotect Password:="123"
.ShowDataForm
Range("A2:H20").Sort Key1:=Range("B2"), Order1:=xlAscending
k = 1
For I = 4 To 20
For j = 1 To 8
If Not IsEmpty(Cells(I, j)) Then
k = k + 1
If k Mod 2 = 0 Then Range("A" & I & ":H" & I).Interior.ColorIndex = 15
Exit For
End If
Next
Next
Range("A3:A20").Rows.AutoFit
.Protect Password:="123"
End With
Application.DisplayAlerts = True
End Sub

Bei deiner Selbsteinschätzung, was VBA-Kenntnisse angeht, den Code vollständig so zu erklären, dass du auch was davon hast, ist im Rahmen eines solchen Beitrages nicht zu leisten. Schau dir einfach mal ein gutes Buch dazu an (oder leihe dir das von deinem freundlichen Admin aus), und wenn du dann etwas weiter bist, kannst du dir die Funktionsweise des Makros auch im Einzelschritt selber erschließen.
Eine gute Quelle sind auch die Excel-Basics von dieser Web-Site.
Eine schönen Abend noch und Danke für die Blumen :-)) Roland
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige