Zeile löschen durch wenn-formel oder makro
hallo,
ich hab eine excel tabelle, die einen programmcode ausgibt, der durch eingabe bestimmter werte sich immer ändert und dieser wird dann einfach aus der excel tabelle kopiert und eingefügt in compiler.
0 | 2^0 |
0 | 2^1 |
1 | 2^2 | Relais(U3,HI,SKS_DE_1.02);
0 | 2^3 |
0 | 2^4 |
0 | 2^5 |
0 | 2^6 |
0 | 2^7 |
0 | 2^8 |
1 | 2^9 | Relais(U3,HI,SKS_DE_1.09);
0 | 2^10 |
0 | 2^11 |
0 | 2^12 |
1 | 2^13 | Relais(U3,HI,SKS_DE_1.13);
0 | 2^14 |
0 | 2^15 |
im groben schaut das so aus: wenn die erste zeile ne 1 ist dann zeigt es hinten den text an und wenn 0 ist dann nicht. das zieht sich natürlich noch weiter und es kommen noch andere teiltabellen, die dann in abhängigkeit von dieser ihren code ändern. ist eigendlich alles über Wenn-funktionen wie z.b.
=WENN(E15=0;"";"Relais(U3,HI,SKS_DE_1.02);")
realisiert. Dieser code wird dann mit copy-paste in den eigendlichen compiler eingefügt.
was ich jetzt machen muss ist eben die leerzeilen raus, das ich nur die zeilen kopieren kann, in dennen auch was steht, sonst hab ich lauter leerzeilen in meinem späteren code.
ich hab da schon ein makro angefertigt, welches aber leider nicht richtig funktioniert. Es kommt mir vor als würde er willkührlich irgendwelche zeilen löschen. Die zeile in der der Text dann innen steht ist bei mir die "G" zeile, welche doch dann auch als 7 beschriftet wird oder?
hier mal mein makro:
Sub löschen()
For i = 141 To 13 Step -1
NichtLoeschen = False
For k = 7 To 8
Wort1 = Cells(i, k)
If Wort1 <> "" Then
NichtLoeschen = True
End If
Next k
If NichtLoeschen = False Then
Rows(i & ":" & i).Select
Selection.EntireRow.Hidden = True
End If
Next i
End Sub
irgendwie löscht er aber auch zeilen, in dennen was innen steht.
Was ich mir auch gedacht habe, das ich vielleicht einfach in die wenn-funktion der einzelnen spalten einen befehl mit einfügen kann, der die zeile dann ausblendet, wenn die bedingung erfüllt ist. dafür weis ich aber leider den befehl nicht - wenn es einen solchen überhaupt gibt.
wenn ihr eine andere möglichkeit habt, die vielleicht die zeilen in dennen was innen steht automatisch ausliest und in zwischenspeicher kopiert, währe das auch gut.
vielen dank schonmal
ich hab eine excel tabelle, die einen programmcode ausgibt, der durch eingabe bestimmter werte sich immer ändert und dieser wird dann einfach aus der excel tabelle kopiert und eingefügt in compiler.
0 | 2^0 |
0 | 2^1 |
1 | 2^2 | Relais(U3,HI,SKS_DE_1.02);
0 | 2^3 |
0 | 2^4 |
0 | 2^5 |
0 | 2^6 |
0 | 2^7 |
0 | 2^8 |
1 | 2^9 | Relais(U3,HI,SKS_DE_1.09);
0 | 2^10 |
0 | 2^11 |
0 | 2^12 |
1 | 2^13 | Relais(U3,HI,SKS_DE_1.13);
0 | 2^14 |
0 | 2^15 |
im groben schaut das so aus: wenn die erste zeile ne 1 ist dann zeigt es hinten den text an und wenn 0 ist dann nicht. das zieht sich natürlich noch weiter und es kommen noch andere teiltabellen, die dann in abhängigkeit von dieser ihren code ändern. ist eigendlich alles über Wenn-funktionen wie z.b.
=WENN(E15=0;"";"Relais(U3,HI,SKS_DE_1.02);")
realisiert. Dieser code wird dann mit copy-paste in den eigendlichen compiler eingefügt.
was ich jetzt machen muss ist eben die leerzeilen raus, das ich nur die zeilen kopieren kann, in dennen auch was steht, sonst hab ich lauter leerzeilen in meinem späteren code.
ich hab da schon ein makro angefertigt, welches aber leider nicht richtig funktioniert. Es kommt mir vor als würde er willkührlich irgendwelche zeilen löschen. Die zeile in der der Text dann innen steht ist bei mir die "G" zeile, welche doch dann auch als 7 beschriftet wird oder?
hier mal mein makro:
Sub löschen()
For i = 141 To 13 Step -1
NichtLoeschen = False
For k = 7 To 8
Wort1 = Cells(i, k)
If Wort1 <> "" Then
NichtLoeschen = True
End If
Next k
If NichtLoeschen = False Then
Rows(i & ":" & i).Select
Selection.EntireRow.Hidden = True
End If
Next i
End Sub
irgendwie löscht er aber auch zeilen, in dennen was innen steht.
Was ich mir auch gedacht habe, das ich vielleicht einfach in die wenn-funktion der einzelnen spalten einen befehl mit einfügen kann, der die zeile dann ausblendet, wenn die bedingung erfüllt ist. dafür weis ich aber leider den befehl nicht - wenn es einen solchen überhaupt gibt.
wenn ihr eine andere möglichkeit habt, die vielleicht die zeilen in dennen was innen steht automatisch ausliest und in zwischenspeicher kopiert, währe das auch gut.
vielen dank schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 24868
Url: https://administrator.de/contentid/24868
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
2 Kommentare
Neuester Kommentar
Guten Morgen,
wie wärs denn mit dem Filter?
Menü Daten -> Filter -> Autofilter -> Benutzerdefiniert -> Nicht leere
Das kannst du ja auch als Makro aufzeichnen!
Psycho
Klug ist jeder - der eine vorher, der andere hinterher
wie wärs denn mit dem Filter?
Menü Daten -> Filter -> Autofilter -> Benutzerdefiniert -> Nicht leere
Das kannst du ja auch als Makro aufzeichnen!
Psycho
Klug ist jeder - der eine vorher, der andere hinterher