online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon angyal-jule vom 27.05.2022, 10:03 Options

Vergleichen von zwei zellen

Hallo ihr lieben,

ich habe ein kleines Problem. Ich moechte gerne in einem Datensatz jeweils die Zeilen ausblenden in denen in Spalte F und H nichts oder eine Null steht. Ich bin ein totaler Anfaenger und bin bisher soweit gekommen; vermute aber, dass es sehr umstaendlich ist, ausserdem funktioniert es nicht richtig. Waere toll zenn ir jemand helfen koennte

Sub CentralAvis()

Dim Markierung As Range, Mark As Range, Wert As String, Zert As String, zelle, zellen
Cells.EntireRow.Hidden = False
Sheets("Centrale Avis").Select
ActiveSheet.Outline.ShowLevels RowLevels:=2
Set Markierung = Sheets("Centrale Avis").Range("F5:F6105")
Set Mark = Sheets("Centrale Avis").Range("H5:H6105")
For Each zelle In Markierung
For Each zellen In Mark
Wert = zelle.Value
Zert = zellen.Value
If Wert = Zert = "" Or Wert = "0" = Zert Then Rows(zelle.Row).Hidden = True
Next zellen
Next zelle
End Sub

Vielen Dank und liebe Gruesse Julia


Antwort schreiben

Antwort 1 von Saarbauer vom 27.05.2022, 10:21 Options

Hallo,

so geht es nicht

Zitat:
If Wert = Zert = "" Or Wert = "0" = Zert Then Rows(zelle.Row).Hidden = True


If Wert = "" and Zert = "" Or Wert = "0" And Zert = "0" Then Rows(zelle.Row).Hidden = True

könnte passen so

If (Wert = "" and Zert = "") Or ( Wert = "0" And Zert = "0") Then Rows(zelle.Row).Hidden = True

hier müssen Wert und Zert entweder "" oder "0" sein,
als 2. Variante

If (Wert = "" Or Wert = "0") And (Zert = "" or Zert = "0") Then Rows(zelle.Row).Hidden = True

Hier muss Wert ="" oder "0" sein und gleichzeitig Zert ="" oder "0" sein

Ichkann es natürlich nicht testen, dazu müsste man die Tabelle nachbauen

Gruß

Helmut

Antwort 2 von angyal-jule vom 27.05.2022, 10:57 Options

Vielen Dank fuer die schnelle Antwort allerdings dauert das mit 6000 Zeilen ziemlich lange. Ist es moeglich das irgendzie schneller hinzubekommen?
Ich kann auch gar nicht sagen ob es jetzt zirklich so ist, dass immer nur die die in einer Zeile stehen vergleichen werden? kann mir jemand dazu nochmal etwas sagen ?
Ich habe jetzt auch das zweite
Zitat:
If (Wert = "" Or Wert = "0") And (Zert = "" or Zert = "0") Then Rows(zelle.Row).Hidden = True

Hier muss Wert ="" oder "0" sein und gleichzeitig Zert ="" oder "0" sein

getestet allerdings schmeisst er jetzt auch die raus wenn in spalte h allein etwas steht in spalte f aber nicht.

Vielen Dank freue mich ueber zeitere Hilfe

Antwort 3 von M.O. vom 27.05.2022, 11:48 Options

Hallo Julia,

eigentlich sollte das so funktionieren.

Hier mal ein etwas kürzeres Makro, das du mal testen kannst:

Sub CentralAvis()

Dim zeile As Integer

Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False


For zeile = 1 To 6105
'Prüfung Spalten F und H
If (Sheets("Centrale Avis").Cells(zeile, 6).Value = 0 Or Sheets("Centrale Avis").Cells(zeile, 6) = "") And (Sheets("Centrale Avis").Cells(zeile, 8).Value = 0 Or Sheets("Centrale Avis").Cells(zeile, 8) = "") Then Sheets("Centrale Avis").Rows(zeile).Hidden = True

Next zeile

Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Zitat:
Ich kann auch gar nicht sagen ob es jetzt zirklich so ist, dass immer nur die die in einer Zeile stehen vergleichen werden? kann mir jemand dazu nochmal etwas sagen ?


Man kann erst etwas dazu sagen, wenn man auch weiß, was verglichen werden soll.

Gruß

M.O.

Antwort 4 von angyal-jule vom 27.05.2022, 12:13 Options

Hallo,
vielen Dank es funktioniert jetzt schon viel schneller. Allerdings funktioniert es leider immer noch nicht, dass wenn nur in Spalte H etwas steht und nicht in Spalte F, es dann eingeblendet bleibt, es wird weiter ausgeblendet.

Zitat:
Man kann erst etwas dazu sagen, wenn man auch weiß, was verglichen werden soll.


Es soll einfach geschaut werden ob in den zwei Zellen der einen Zeile etwas steht. Wenn dann in BEIDEN !!!! nichts steht, dann soll es ausgeblendet werden.

Vielen Dank ^fuer die Hilfe bisher

Antwort 5 von M.O. vom 27.05.2022, 13:09 Options

Hallo Julia,

wenn die Zeile nur ausgeblendet werden soll, wenn die Spalten F und H beide leer sind, dann ändere die If-Anweisung wie folgt:

If Sheets("Centrale Avis").Cells(zeile, 6) = "" And Sheets("Centrale Avis").Cells(zeile, 8) = "" Then Sheets("Centrale Avis").Rows(zeile).Hidden = True


Gruß

M.O.

Antwort 6 von angyal-jule vom 27.05.2022, 13:58 Options

Vielen Dank,

allerdings liegt das Problem nicht darin dass noch zusaetzlich die Null dort drin stand sondern darin, dass sobald nur in einer der beiden Zellen etzas steht diese schon ausgeblendet wird !

Ich kann es allerdings nicht nachvollsiehen wieso,mir erscheint der Befehl mit der "and" verknuepfung eigentlich klar. Wieso funktioniert es nicht? :(

Antwort 7 von nighty vom 27.05.2022, 14:20 Options

hi all ^^

vielleicht hilfreich :-))

gruss nighty

Option Explicit  
Sub Prüfen()
    If IsEmpty(Cells(1, 1)) = True Then
        'Ich bin leer und wurde auf String und Numeric geprueft
    End If
End Sub  

Antwort 8 von angyal-jule vom 27.05.2022, 15:43 Options

nicht wirklich ^^

Antwort 9 von angyal-jule vom 27.05.2022, 16:18 Options

Mhh wenn ich es so nicht richtig hinbekomme haette ich noch eine andere moeglichkeit es zu machen dafuer habe ihc nur gar keine Idee:

Beispiel:
Mein Excelsheet hat 4 Blaetter. Blaetter 2,3, und 4 sind sind identisch aufgebaut. Es ist eine Tabelle mit jeweils 100 Zeilen dort. Jetzt moechte ich das ganze auf dem ersten Blatt vereinen. Da man vermutet, dass pro Blatt nur 20 Zeilen ausgefuellt werden und man es so uebersichtlich wie moeglich halten moechte, werden auf Blatt 1 in die Tabelle fuer jedes Blatt nur 20 Zeilen eingefuegt. Jede Zelle der 20 Zeilen ist mit ihrem Equivalent auf den anderen Blaettern gekoppelt (zieht sich die Informationen von den Blaettern). Jetzt moechte ich aber, da in Zukunft vielleicht mehr als 20 Zeilen ausgefuellt werden, dass so bald ich auf Blatt 2,3,4 in Zeile 21 etwas schreibe auf Blatt 1 nach Zeile 20 eine weitere Zeile eingefuegt wird und diese auch mit ihrem Equivalent verknuepft wird. Sodass auch hier die selben Informationen wie auf dem eigentlichen Blatt auf dieser Seite stehen.

Nein ich kann das nicht alles gleich in das erste Blatt eintragen, da auf den einzelnen Blaettern noch weitere Informationen stehen. Oben das war meine Variante das irgendwie aehnlich hinzubekommen (das ganze ist eine Aufgabe meiner Chefin), ich habe alle 100 Zeilen eingefuegt und wollte die Zeilen ohne Information ausblenden lassen.

Antwort 10 von M.O. vom 28.05.2022, 09:06 Options

Hallo Julia,

keine Ahnung, warum bei deiner Datei das Makro nicht funktionert.
Lade doch mal eine Beispieldatei mit ein paar Dummy-Daten hoch, z.B. hier und poste den Link.

Gruß

M.O.

Antwort 11 von angyal-jule vom 28.05.2022, 09:48 Options

Also ich habe jetzt mal einen Dummy gebildet. Ok einige Spalten sind nicht mehr richtig, aber das liegt daran, dass ich Seiten geloescht habe. Auf der ersten Seite seht ihr nun mein Problem!

Man hat von jeder Seite genau die 100 Zeilen angezeigt. Jetzt weiss ich nicht so recht weiter. Es geht darum, dass man am Ende nur noch die beschriebenen Zeilen hat und keine leeren dazwischen. Allerdings ist es jetzt mit MEINEM (die Button oben) so, dass ich das Ergebnis nicht markieren kann und dann kopieren. Momentan ist es jetzt so, da ich es nur ausgeblendet habe dass dann alles kopiert wird.

Ich hab mir noch etwas anderes ueberlegt:

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 28/05/2010 par jkreisz
'

'
Range("C5:J5").Select
Application.CutCopyMode = False
Selection.AutoFilter
Selection.AutoFilter Field:=8, Criteria1:="0"
Rows("6:6369").Select
Selection.Delete Shift:=xlUp
Range("I16").Select
Selection.AutoFilter Field:=8
Range("B14").Select
Range("C5:J5").Select

Selection.AutoFilter
End Sub

Hier das Ergebnis kann ich nun kopieren, aber es ist jetzt fix. Hier braeuchte ich jetzt
1. ein Makro um das Makro rueckgaengig zu machen und
2. am besten auch hier wie auch oben die Moeglichkeit das eben nicht nur EINE sondern zwei Spalten ueberprueft werden. Es soll nicht nur "Titre" sondern auch "Avis" nach Inhalt geprueft werden. Nur wenn in beiden nichts/oder 0 steht, dann soll es veraendert werden (1. Verion ausblenden, 2. Version loeschen)

Ich bin auch fuer jeden anderen neuen Ansatz zu haben, allerdings faellt mir dazu einfach nichts mehr ein.

Vielen lieben Dank

Julia

Antwort 12 von angyal-jule vom 28.05.2022, 09:48 Options

http://www.file-upload.net/download-2552909/Dummy.xls.html

Sry ich hatte den Link vergessen

Antwort 13 von M.O. vom 28.05.2022, 10:26 Options

Hallo Julia,

folgendes Makro blendet auf dem Blatt Centrale Avis alle Zeilen aus, in denen die Spalte F oder H leer ist:

Sub CentralAvisNeu()

Dim zeile As Integer

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

For zeile = 1 To 6105
'Prüfung Spalten F und H
If Sheets("Centrale Avis").Cells(zeile, 6).Value = 0 Or Sheets("Centrale Avis").Cells(zeile, 6) = "" Or Sheets("Centrale Avis").Cells(zeile, 8).Value = 0 Or Sheets("Centrale Avis").Cells(zeile, 8) = "" Then Sheets("Centrale Avis").Rows(zeile).Hidden = True
Next zeile

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Wenn du nur die sichtbaren Zellen kopieren willst so geht das mit folgendem Makro:

Sub FiltereiKopieren()

Range("A5").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Tabelle1").Range("A1")

End Sub


Hier werden die Daten in das Tabellenblatt Tabelle1 kopiert. Das kannst du deinen Bedürfnissen anpassen.

Schau mal, ob du jetzt weiterkommst.

Gruß

M.O.

Antwort 14 von angyal-jule vom 28.05.2022, 11:47 Options

Hey,

super vielen Dank, das Makro zum kopieren funktioniet! Allerdings das andere wie gehabt immer noch nicht. Ich kann mir einfach nicht erklaeren woran es liegt :(

Ich vermute es bringt dich nicht zeiter zenn ich dir sage, dass das Excelprogramm hier auf Franzoesisch eingestellt ist. Ich wuesste allerdings nicht was das beeinflussen sollte.

Falls du noch eine Idee hast wuerde ich mich sehr darueber freuen.

Viele Gruesse

Antwort 15 von M.O. vom 28.05.2022, 12:37 Options

Hallo,

in der Dummy-Datei, die du ins Netz gestellt hast, funktioniert das in Antwort 13 gepostete Makro einwandfrei. In der Tabelle Centrale Avis werden alle Zeilen ausgeblendet,
in den in Spalte F oder H eine Null steht oder Zellen leer sind. Warum das Makro bei dir nicht funktioniert kann ich nicht sagen, aber an der französichen Version dürfte es nicht liegen.

Hier noch mal das Makro, angepasst an die Dummy-Datei (Prüfung erst ab Zeile 6):

Sub CentralAvisNeu()

Dim zeile As Integer

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False


For zeile = 6 To 6105
'Prüfung Spalten F und H
If ActiveSheet.Cells(zeile, 6).Value = 0 Or ActiveSheet.Cells(zeile, 6) = "" Or ActiveSheet.Cells(zeile, 8).Value = 0 Or ActiveSheet.Cells(zeile, 8) = "" Then ActiveSheet.Rows(zeile).Hidden = True

Next zeile

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Um alles mögliche und unmögliche auszuschließen:
Du startest das neue Makro doch über Extras-Makro ? Ansonsten musst du dem Button das neue Makro zuweisen.

Gruß

M.O.

Antwort 16 von angyal-jule vom 28.05.2022, 13:11 Options

Ich muss dich leider enttauschen, es funktioniert immer noch nicht. An sich fuehrt er das Makro ja aus, allerdings loescht er immernoch die Zeilen wo in der Spalte Titre nichts steht, auch wenn bei Avis etwas steht :(

Falls dir noch etwas einfaellt wuerde ich mich sehr freuen. Ich wuerde die Aufgabe zugerne perfekt loesen. Das Problem ist einfach, dass moeglicherzeise durch "dummes Handeln" (die Seiten 1-61 werden nicht von uns ausgefuellt) man entweder den Titel nicht weiss oder die Antwor t fuer Avis ausversehen falsch eintraegt, deshalb haette ich eifnach gern anstatt einer Spalte in der das geprueft wird die zweite dazu. Sieht da jemand sonst noch eine ander e Moeglichkeit ?

M.O. vielen Dank fuer deine kontinuierliche Hilfe ;)

Antwort 17 von angyal-jule vom 28.05.2022, 14:42 Options

Noch eine kleine 100% super einfache Frage: wie ist der Befehl zum kopieren einer Zeile ?
Vielen Dank

Antwort 18 von Saarbauer vom 28.05.2022, 14:45 Options

Hallo,

ich habe mir mal die Beispieldatei angesehen und dort sind im Makro einige Fehler.

Mein Makro

Sub CentralAvis()
'
' Macro3 Macro
' Macro enregistrée le 26/05/2010 par jkreisz
'
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
Sheets("Centrale Avis").Select
For i = 6 To Range("A65536").End(xlUp).Row
If (Cells(i, 7).Value = "" Or Cells(i, 7).Value = "0") And (Cells(i, 10).Value = "" Or Cells(i, 10).Value = "0") Then Rows(i).Hidden = True
Next i
Application.ScreenUpdating = True
End Sub

In deiner Beispieldatei getestet und funktioniert, wobei bei der Beispieldatei, in Spalte G (7) "Titre" steht und "Avis" in Spalte J (10).

Gruß

Helmut

Antwort 19 von angyal-jule vom 28.05.2022, 16:07 Options

Vielen Dank so funktioniert es =)

und das
Zitat:
wobei bei der Beispieldatei, in Spalte G (7) "Titre" steht und "Avis" in Spalte J (10).
ist richtig. Die Datei wurde nach meinen ersten Eintraegen noch mehrfach geaendert und das zird leider auch noch so weitergehen.

Antwort 20 von Saarbauer vom 28.05.2022, 18:42 Options

Hallo,

freut mich, wenn sich die Spalten ändern dann ist diese Zeile zu ändern

If (Cells(i, 7).Value = "" Or Cells(i, 7).Value = "0") And (Cells(i, 10).Value = "" Or Cells(i, 10).Value = "0") Then Rows(i).Hidden = True

Habe die Zahlen fett gemacht, 7 steht für Spalte G und 10 für Spalte J

Gruß

Helmut

Ähnliche Themen

Tabellen vergleichen
opera2  14.01.2009 - 212 Hits - 6 Antworten

Zwei Excel Dateien vergleichen
Michibeck  09.04.2009 - 938 Hits - 3 Antworten

Vergleich mehrerer Zellen, Ausgabe mehrer Zellen als Ergebnis
Cypp80  13.08.2009 - 314 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026