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

Auslesen Position markierter Felder

Auslesen Position markierter Felder
11.08.2006 12:08:04
Eismann
Hallo,
ich habe folgendes Problem:
Ich habe ein Makro geschrieben, welches die Länge von Feldern anhand einer vorgegebenen Länge prüft und die Felder, welche diese Länge überschreiten, gelb markiert. Daraufhin wird ein neues Tabellenblatt (Pruefungen) angelegt, in welches nun ein konstanter Text 'Feld XY zu lang.' pro fehlerhaftem Feld eingefügt wird. Mein Problem ist nun, wie man die Position der markierten Felder bestimmt und wie ich den konstanten Text eingeben muss.
Danke schon mal fuer die Hilfe.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auslesen Position markierter Felder
11.08.2006 12:16:02
Andi
Hi,
das ginge so:

Sub t()
Dim c As Range
For Each c In Range("A1:D20")
If c.Interior.ColorIndex = 6 Then c.Value = "Feld " & c.Address & " ist zu lang"
Next c
End Sub

Nicht klar ist mir allerdings, warum Du den Text nicht gleich im ersten Makro miteinträgst, wenn Du die Zellen gelb anmalst.
Schönen Gruß,
Andi
oh mann...
11.08.2006 12:20:35
Andi
... Lesekompetenz = 0!
Bitte das oben geschriebene ignorieren, die Lösung kommt gleich...
jetz aber...
11.08.2006 12:24:35
Andi
Bitte schön:

Sub t()
Dim c As Range
For Each c In Sheets("Tabelle1").Range("A1:D20")
If c.Interior.ColorIndex = 6 Then
With Sheets("Pruefungen")
.Cells(.Range("A65536").End(xlUp).Row + 1, 1).Value = "Feld " & c.Address & " ist zu lang"
End With
End If
Next c
End Sub

Schönen Gruß,
Andi
Anzeige
Hmmm
11.08.2006 12:30:37
Eismann
Hi Andi,
erstmal danke, nur leider funktioniert was nicht. Er meckert bei dem Range("A65536")und sagt, Fehler beim Kompilieren (Unzulaessiger oder nicht ausreichend definierter Verweis)
AW: Hmmm
11.08.2006 12:41:49
Uduuh
Hallo,
so geht's:

Sub t()
Dim c As Range, wks As Worksheet
For Each c In Sheets("Tabelle1").Range("A1:D20")
If c.Interior.ColorIndex = 6 Then
On Error Resume Next
Set wks = Sheets("Pruefung")
On Error GoTo 0
If wks Is Nothing Then
Set wks = Worksheets.Add
wks.Name = "Prüfung"
End If
wks.Range("A65536").End(xlUp).Offset(1, 0).Value = "Feld " & c.Address & " ist zu lang"
End If
Next c
End Sub
Gruß aus’m Pott
Udo

Anzeige
AW: Hmmm
11.08.2006 12:48:17
Eismann
Hallo,
leider fuegt er immer noch nichts in das Tabellenblatt ein :o( Ich hab hier mal den Code, wie ich das Tabellenblatt einfuege. Habe ich mit dem Recorder aufgezeichnet, aber jetzt bringt er mir immer die Fehlermeldung, Index ausserhalb des gueltigen Bereichs.
Sheets.Add
Sheets("Tabelle1").Select
Sheets("Tabelle1").Move After:=Sheets(4)
Sheets("Tabelle1").Select
Sheets("Tabelle1").Name = "Prüfungen"
AW: Hmmm
11.08.2006 12:52:57
Uduuh
Hallo,
Tippfehler meinerseits:

Sub t()
Dim c As Range, wks As Worksheet
For Each c In Sheets("Tabelle1").Range("A1:D20")
If c.Interior.ColorIndex = 6 Then
On Error Resume Next
Set wks = Sheets("Pruefungen")
On Error GoTo 0
If wks Is Nothing Then
Set wks = Worksheets.Add
wks.Name = "Pruefungen"
End If
wks.Range("A65536").End(xlUp).Offset(1, 0).Value = "Feld " & c.Address & " ist zu lang"
End If
Next c
End Sub

Ist Colorindex 6 richtig?
Gruß aus’m Pott
Udo

Anzeige
AW: Hmmm
11.08.2006 13:00:55
Eismann
Colorindex ist richtig ja...ich bekomme nur leider immer noch diese Fehlermeldung, denn das Prüfungen habe ich vorhin schon abgeändert :o( Ich denke, es liegt an meiner Art, das neue Tabellenblatt einzufuegen. Ich hatte das ueber den Recorder gemacht, aber bin mir nicht sicher, ob dies so geht. Eventuell sollte man noch eine Pruefung einbauen, ob dies schon vorhanden ist, aber ich kenn mich damit leider absolut nicht aus :o(
AW: Hmmm
11.08.2006 13:05:12
Eismann
Sorry...nun ein Missvertaendnis meinerseits...funktioniert einwandfrei. Ich musste nur das Tabelle1 durch meine Bezeichnung ersetzen und hatte nicht gesehen, dass hier schon ein neue Tabellenblatt eingefuegt wird. Vielen Vielen Dank.
Anzeige
Neues Problem :o(
11.08.2006 13:13:19
Eismann
Also bis D20 hat dies wunderbar funktioniert, nur leider habe ich jetzt das Problem, dass ich das ja fuer saemtliche Spalten und Zeilen benoetige und versucht habe, den Code zu aendern und jetzt haengt sich mein Excel staendig auf :o(
AW: Hmmm
11.08.2006 13:27:45
u_
Hallo,
ändere wie folgt.
For Each c In Sheets("Tabelle1").UsedRange
Gruß
Lesen gefährdet die Dummheit
Danke schoen :)
11.08.2006 13:33:22
Eismann
Danke Danke :) Funktioniert nun...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige