Hallo,
ich versuche gerade meine vorhandenen Scripte etwas anzupassen. Hierzu möchte ich gern folgendes:
Ich habe eine Tabelle mit verschiedenen Zeilen und Spalten (wer hätte das gedacht^^). Durch eine Suche lasse ich mir Leerzeilen eintragen (Suche eines Zahlenwertes).
Diese sind für eine Summenermittlung notwendig. Weiterhin wird einmalig ein Zellenvergleich von unten nach oben durchgeführt. Trifft der Vergleich zu (Wert der Zelle um
eins gefallen) so werden Textpassagen eingetragen welche für die Struktur notwendig sind.
Ebenfalls lasse ich von oben nach Unten einen bestimmten Wert suchen (also kein Vergleich, sondern nur eine Zahl) und wenn es zutrifft bestimmte Formatierungen des
Zellen vornehmen. Hierzu sind (mit reger Mitarbeit von PetaOd) folgende VBScripte entstanden:
Nun benötige ich eure Hilfe. Ich möchte von der Losteilezeile ab nach oben die Leerzeilen löschen lassen. Hierzu müsste ich in Spalte M nach einer leeren Zelle und nach der Zahl 2
suchen lassen. Mein Problem ist nun, dass die Suche immer von oben nach unten ist und beim Eintragen der "Losteile" nicht gesucht, sondern ein Vergleich vorgenommen wird.
Folgendes habe ich bereist herausgefunden:
Hat jemand eine Idee wie ich das machen kann? Mit der Variablen p habe ich ja die Zeile ab der es losgehen soll. Darunter soll alles beim alten bleiben.
Wenn mir da jemand weiterhelfen kann wäre ich sehr sehr dankbar
MfG Felix
ich versuche gerade meine vorhandenen Scripte etwas anzupassen. Hierzu möchte ich gern folgendes:
Ich habe eine Tabelle mit verschiedenen Zeilen und Spalten (wer hätte das gedacht^^). Durch eine Suche lasse ich mir Leerzeilen eintragen (Suche eines Zahlenwertes).
Diese sind für eine Summenermittlung notwendig. Weiterhin wird einmalig ein Zellenvergleich von unten nach oben durchgeführt. Trifft der Vergleich zu (Wert der Zelle um
eins gefallen) so werden Textpassagen eingetragen welche für die Struktur notwendig sind.
Ebenfalls lasse ich von oben nach Unten einen bestimmten Wert suchen (also kein Vergleich, sondern nur eine Zahl) und wenn es zutrifft bestimmte Formatierungen des
Zellen vornehmen. Hierzu sind (mit reger Mitarbeit von PetaOd) folgende VBScripte entstanden:
Visual Basic-Quellcode
- '____________BAURUPPE LOSTEILE EINTRAGEN_______START_______
- Dim wsStruct0
- Dim y, y0
- Dim p
- DIM q
- set wsStruct0 = objExcel.Worksheets("strukturliste")
- y0 = 99999
- For p = wsStruct0.Cells(wsStruct0.Rows.Count, 13).End(-4162).Row To 6 Step -1
- y = wsStruct0.Cells(p, 13).Value
- If y > 0 Then
- If y > y0 Then
- wsStruct0.Rows(p+1).Insert
- wsStruct0.Cells(p+1,3).Value = ISDGetText("Losteile")
- wsStruct0.Cells(p+1,13).Value = ISDGetText("1")
- wsStruct0.Cells(p+1,14).Value = ISDGetText("27")
- Exit For
- End If
- y0 = y
- End If
- next
- '____________BAURUPPE LOSTEILE EINTRAGEN________ENDE_______
- '____________BAURUPPE FARBLICH HERVORHEBEN_______START_______
- Dim wsStruct1
- Dim Such1, Treffer1
- set wsStruct1 = objExcel.Worksheets("Strukturliste")
- Set Such1 = wsStruct1.Columns("N").Find("27")
- If Not Such1 Is Nothing Then
- Such1.EntireRow.Insert
- Treffer1 = Such1.Address
- Do
- Such1.EntireRow.Font.Bold = True
- Such1.EntireRow.Interior.Color = RGB(235,235,235)
- Set Such1 = wsStruct1.Columns("N").FindNext(Such1)
- if not Such1 is nothing And Treffer1 <> Such1.Address then
- Such1.EntireRow.Insert
- end if
- Loop While Not Such1 Is Nothing And Treffer1 <> Such1.Address
- End If
- '____________BAURUPPE FARBLICH HERVORHEBEN_______ENDE_______
Nun benötige ich eure Hilfe. Ich möchte von der Losteilezeile ab nach oben die Leerzeilen löschen lassen. Hierzu müsste ich in Spalte M nach einer leeren Zelle und nach der Zahl 2
suchen lassen. Mein Problem ist nun, dass die Suche immer von oben nach unten ist und beim Eintragen der "Losteile" nicht gesucht, sondern ein Vergleich vorgenommen wird.
Folgendes habe ich bereist herausgefunden:
- mit "EntireRow.Insert" kann ich eine leere Zeilen hinzufügen, mit "EntireRow.Delete" kann ich die aktive Zeile löschen
- mit "SearchDirection:=xlPrevious" kann ich in VBA die Suchrichtung ändern, aber wie in VBS
Hat jemand eine Idee wie ich das machen kann? Mit der Variablen p habe ich ja die Zeile ab der es losgehen soll. Darunter soll alles beim alten bleiben.
Wenn mir da jemand weiterhelfen kann wäre ich sehr sehr dankbar
MfG Felix