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

Problem - komm einfach nicht weiter ...

Problem - komm einfach nicht weiter ...
08.07.2005 11:00:18
Michl
Hallo wieder mal! ;)
Irgendwie steh ich aufm Schlauch, kriegs irgendwie nich gebacken.
Bei folgendem Code soll nach dem String "Splitt-Fehler" gesucht werden, diese Zelle und der dazugehörige Dateiname wird dann farbig markiert.
Anschließend werden ein paar Zellen darunter Meldungen ausgegeben, funkioniert auch so weit, siehe Code:

Sub test()
Dim leer As String
With ActiveSheet.Columns(20)
Set splitt = .Find("SplittFehler", LookIn:=xlValues, LookAt:=xlWhole)
If Not splitt Is Nothing Then
firstAddress = splitt.Address
Do
With splitt.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
With splitt.Offset(0, -10).Interior
.ColorIndex = 40
.Pattern = xlSolid
' Zellenbeschriftung
lngrow = ""
If lngrow < Cells(Range("J65536").End(xlUp).Row, 10) Then
Cells(Range("J65536").End(xlUp).Row + 5, 10) = "Splitt-Fehler in Datei " & "'" & splitt.Offset(0, -10).Value & "'" & " :"
Cells(Range("J65536").End(xlUp).Row + 1, 10) = "'" & " --> Fehlende Seiten: "
End If
End With
Set splitt = .FindNext(splitt)
Loop While Not splitt Is Nothing And splitt.Address <> firstAddress
End If
End With
End Sub

Das Problem ist jetzt, dass ich nicht möchte das der Zellenabstand zwischen dem Sring "--> Fehlende Seiten:" und "Splitt-Fehler in Datei..." immer 4 Zeilen beträgt, sondern nur 1 Zeile! Aber nach dem Code macht er ja zwangsweise immer 5 Zeilen. :-(
(Am Anfang muss der Abstand 4 Zeilen betragen, srpich von der letzten Zelle von J, bis zum ersten Sring "Splitt-Fehler in Datei"!!)
Hoffe ihr könnt mir helfen, denn ich grübel mir noch die Brine breiig ...
Hier könnt ihr euch das ganze mal anschauen:
--> https://www.herber.de/bbs/user/24560.xls
Am besten abspeichern und das Marko ausführen, hab nämlich da jetzt kein Button eingebaut ...
Danke euch schonmal!
Gruss,
Michl

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

Betreff
Datum
Anwender
Anzeige
AW: Problem - komm einfach nicht weiter ...
08.07.2005 11:13:15
dmoser
Du musst bei Cell Range den abstand zwischen ROW + 5 und ROW + 1 verringern.
p.s. Zumindesten glaube ich, das Probiers mal
AW: Problem - komm einfach nicht weiter ...
08.07.2005 11:21:56
Harald
Hi Michl,
ich geb auch mal einen Schuss ab.
statt Row + 5 Row + n
Dazu mußt Du vor ! der Schleife n = 5 schreiben und vor End If n = n + 2, dann verringert er nach dem ersten Durchlauf den Abstand von 5 auf 2.
Gruß
Harald
AW: Problem - komm einfach nicht weiter ...
08.07.2005 11:50:43
Michl
Hi Harald,
also reintheoretisch müsste das klappen, ja. (Aber wenn der Zeilenabstand 1 Zeile betragen soll, dann muss es n = n + 3 heißen. Sonst würde er es ja direkt drunter machen.
Aber leider funktioniert dein Vorschlag nicht. Habs so gemacht, wie du gesagt hast. Macht das gleiche wie vorher, versteh ich aber irgendwie nicht, muss ich sagen. Irgendwo nen Denkfehler drinnen?
Edit:
Jetzt habs ichs! (aber ein bisschen anders ;) )
Wir hatten beide nen Denkfehler. Und zwar bin ich jedenfalls davon ausgegangen, dass die letzte Zeile von J, sprich Cells(Range("J65536").End(xlUp).Row, 10) den letztzen Dateinamen in sich trägt, doch diese Zelle beinhaltet den Sring "Fehlende Seiten:".
Dann muss der Code wie folgt aussehen:

Sub test()
Dim leer As String
With ActiveSheet.Columns(20)
Set splitt = .Find("SplittFehler", LookIn:=xlValues, LookAt:=xlWhole)
n = 5
If Not splitt Is Nothing Then
firstAddress = splitt.Address
Do
With splitt.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
With splitt.Offset(0, -10).Interior
.ColorIndex = 40
.Pattern = xlSolid
' Zellenbeschriftung
lngrow = ""
If lngrow < Cells(Range("J65536").End(xlUp).Row, 10) Then
Cells(Range("J65536").End(xlUp).Row + n, 10) = "Splitt-Fehler in Datei " & "'" & splitt.Offset(0, -10).Value & "'" & " :"
Cells(Range("J65536").End(xlUp).Row + 1, 10) = "'" & " --> Fehlende Seiten: "
lngrow = Cells(Range("J65536").End(xlUp).Row, 10)
n = 2
End If
End With
Set splitt = .FindNext(splitt)
Loop While Not splitt Is Nothing And splitt.Address <> firstAddress
End If
End With
End Sub

Aber trotzdem ein riesen Danke an dich! Ohne dich wär ich auf den Trichter mit n nicht gekommen ... :))
Gruss,
Michl
Anzeige
AW: Problem - komm einfach nicht weiter ...
08.07.2005 12:11:34
Harald
Yepp,
hatte nicht nur einen Denkfehler drin.
Zweitrangig, da u_ das Ganze doch wesentlich eleganter hinbekommen hat.
Gruß
Harald
AW: Problem - komm einfach nicht weiter ...
08.07.2005 11:25:08
Michl
Hi dmoser,
nein genau das will ich nicht! Es ist ja nicht so, dass IMMER der Abstand gleich sein soll, sondern er variiert. Hab ich oben schon geschrieben:
"Am Anfang muss der Abstand 4 Zeilen betragen, sprich von der letzten Zelle von J, bis zum ersten Sring "Splitt-Fehler in Datei"!!"
Und danach soll der Zellenabstand zwischen dem Sring "Fehlende Seiten:" und "Splitt-Fehler in Datei..." nur noch 1 Zeile betragen, so hab ich das gemeint.
Hoffe es ist jetzt verständlicher! :)
Anzeige
AW: Problem - komm einfach nicht weiter ...
08.07.2005 11:26:16
u_
Hallo,
kleiner Hinweis:
Cells(Range("J65536").End(xlUp).Row,10) ist das gleiche wie
Range("J65536").End(xlUp), nur länger.

Sub test()
Dim leer As String, firstAddress As String
Dim Splitt As Range
Dim lngRow As Long
With ActiveSheet.Columns(20)
Set Splitt = .Find("SplittFehler", LookIn:=xlValues, LookAt:=xlWhole)
If Not Splitt Is Nothing Then
firstAddress = Splitt.Address
Do
With Splitt.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
With Splitt.Offset(0, -10).Interior
.ColorIndex = 40
.Pattern = xlSolid
' Zellenbeschriftung
lngRow = ""
If lngRow < Range("J65536").End(xlUp) Then
If Splitt.Address = firstAddress Then
Range("J65536").End(xlUp).Offset(5, 0) = "Splitt-Fehler in Datei " & "'" & Splitt.Offset(0, -10).Value & "'" & " :"
Else
Range("J65536").End(xlUp).Offset(2, 0) = "Splitt-Fehler in Datei " & "'" & Splitt.Offset(0, -10).Value & "'" & " :"
End If
Range("J65536").End(xlUp).Offset(1, 0) = "'" & " --> Fehlende Seiten: "
End If
End With
Set Splitt = .FindNext(Splitt)
Loop While Not Splitt Is Nothing And Splitt.Address <> firstAddress
End If
End With
End Sub

Gruß
Geist ist geil!
Anzeige
AW: Problem - komm einfach nicht weiter ...
08.07.2005 11:59:46
Michl
Danke u_ für den Hinweis!
Werds mir in Zukunft merken. :)
Dein Code lübbt auch einwandfrei, man darf lngrow bloß nicht als long deklarieren, sonst beißt sich das ja ...
Danke für eure schnelle Hilfe!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige