Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Wenn Formel ?
#1
Hallo alle zusammen :)

Ich habe ein irrenführendes Problem und komme einfach nicht weiter.. :22: :s

Dieses Excel Tabelle (Foto im Anhang) möchte ich gerne zum Bezahlstatus der Kunden einsehen. (Seite 2)
Alle 15 Tage erscheint eine neue Excel Tabelle in dieser Form die ich in auf (Seite 1) einfüge.

Auf Seite 2 habe ich die Zeile A bereits vorinstalliert, Status -> Dropdown Liste mit Farben.
Um viel Zeit sparen zu können.. brauche ich allerdings noch:


Wenn auf Seite 2 die Referenz aus Zeile M, auf Seite 1 (UPDATE) icht aufgelistet ist, dann die gesamte Zeile (Zeile 5 von der Seite 2) löschen.

Ist das möglich ? Huh Huh

   
Antworten Top
#2
(22.03.2018, 01:41)iamye schrieb: Hallo alle zusammen :)

Ich habe ein irrenführendes Problem ...
...
Wenn auf Seite 2 die Referenz aus Zeile M, auf Seite 1 (UPDATE) icht aufgelistet ist, dann die gesamte Zeile (Zeile 5 von der Seite 2) löschen.

Ist das möglich ? Huh Huh

Hallo, hoffentlich nicht (irrenführend), so schlimm..?
Nein. Auf Fotos nicht und in Excel-Dateien kann man mit einer (oder mehreren) Formeln - egal welcher auch nix (also überhaupt nix) löschen...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#3
(22.03.2018, 02:01)Jockel schrieb: Hallo, hoffentlich nicht (irrenführend), so schlimm..?
Nein. Auf Fotos nicht und in Excel-Dateien kann man mit einer (oder mehreren) Formeln - egal welcher auch nix (also überhaupt nix) löschen...

Ok alles klar, und wenn ich das Ganze mit Hilfslinie ausstatte ?
Dh. wenn der Wert auf Seite 1 nicht wieder gespiegelt wird, dann Resultat = 0 ?

Diese kann ich dann nachher filtern und eben manuel löschen ? :)

Oder wenn die Referenz auf Seite 1 nicht mehr ausgelistet ist dann Zeile XY ganz leeren.

Was ist einfacher ?


Diese kann ich dann nachher filtern und eben manuel löschen ? :)
Antworten Top
#4
Hallo,

mit einer Formel kannst du keine Zeilen löschen.

Ich könnte mir gut vorstellen, dass dein Vorhaben mit VBA möglich ist aber das ist a) nicht meine Baustelle und ich vermute auch b) dass die VBA-Experten eine Beispielsdatei und eine genauere Beschreibung benötigen.

Aber das können dir die Kollegen selbst besser sagen.
Gruß
Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Peter für diesen Beitrag:
  • iamye
Antworten Top
#5
Am liebsten VBA..
Antworten Top
#6
Hi,

um ein auf Deine Datei angepaßtes VBA-Makro zu erstellen, benötigen die Helfer eine Excel-Beispieldatei zum Testen.

Es ist schwierig, sich aus einer Beschreibung eine Datei zu erstellen, die zum Testen von Funktionen, Formeln und Makros geeignet ist, dazu müßte sie gleich aufgebaut sein wie Deine Datei.
Also stelle bitte (D)eine (Beispiel-)Tabelle als Excel-Datei zur Verfügung oder stelle die relevanten Ausschnitte und die Makro-Codes hier dar, siehe die als Wichtige Themen: markierten Beiträge im Forum "Nutzungs- und Bedienungshinweise" bei "Forumstechnik".
  • Eine Beispieldatei muss vom Aufbau her zwingend dem Original gleichen, sonst wird's mit gezielter Hilfe i. d. R. nichts oder erst nach zig Nachfragen
  • Meistens reichen 10-15 Datensätze
  • Sensible Daten sollen anonymisiert werden
  • Bei einigen Datensätzen sollte unbedingt händisch das Wunschergebnis eingetragen sein
  • Und last but not least ist es wichtig, im Post zugeschnitten auf die Beispieldatei eine ordentliche Problembeschreibung abzugeben.
Die farbigen Texte sind anklickbare Links.

Hier steht, wie es geht:
Beitrag 1 WICHTIG: Arbeitsmappen zur Verfügung stellen
Beitrag 2 WICHTIG: Tabellenausschnitte und VBA-Codes im Forum einstellen

Eine Bitte:
Anstatt Screenshots ist eine Datei oder ein Ausschnitt besser!
"Du gehst ja auch nicht in die Werkstatt und gibst zur Reparatur ein Foto Deines kaputten Autos ab!"
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • iamye
Antworten Top
#7
Im Anhang die gewünschte Datei :)


Makro Funktionen für Sheet 2017

-> delete <- name vom makro
Wenn der Wert aus Zeile M (Sheet 2017) nicht in Zeile M (Sheet Update) auftaucht dann "hier im Beispiel Zeile 13" aus Sheet 2017 löschen.

-> insert <- name vom makro
Wenn der Wert aus Zeile M (Sheet Update) nicht in Zelle M (Sheet 2017) autaucht dann gesamte Zeilen-Linie aus (Sheet Update) in Sheet 2017 einfügen.

-> update <- name vom makro

Wenn der Wert aus Zeile M (Sheet Update) in Zeile M (Sheet 2017) besteht, dann < Wert aus Zeile F (Sheet Update) in (Sheet 2017) übernehmen.


Die 3 Makors können auch einfach -> update <- genannt werden.


Vielen Dank :))


Angehängte Dateien
.xlsm   rappels 2.0.xlsm (Größe: 30,29 KB / Downloads: 2)
Antworten Top
#8
Hallo,

ein paar Infos zu den drei wichtigsten Begriffen rund um Excel (meiner Meinung nach):
Jede Tabelle besteht aus Zeilen und Spalten.
Zeilen verlaufen horizontal (von links nach rechts) und werden durch Zahlen beschrieben (z.B. Zeile 1 oder Zeile 22).
Spalten verlaufen vertikal (von oben nach unten) und werden durch Buchstaben beschrieben (z.B. Spalte A oder Spalte M).
Eine Zelle ist eines dieser "Kästchen" der Tabelle, wo sich eine Zeile und eine Spalte kreuzen. Die Zellen haben Adressen, die aus den Buchstaben der Spalten und der Zeilennummer bestehen. Z.B. Zelle A1 oder Zelle M13.

Es hilft mir sehr, wenn du diese Begriffe richtig verwendest.


Ich habe dir ein kleines Makro geschrieben. Bitte teste es selbst (an Testdaten!):
Code:
Sub nameSelbstAnpassen()
Dim lngLetzte2017 As Long, lngLetzte As Long, lZeile As Long, rngM As Range
'Wenn der Wert aus Zeile M (Sheet 2017) nicht in Zeile M (Sheet Update) auftaucht dann "hier im Beispiel Zeile 13" aus Sheet 2017 löschen.
    With Sheets("2017")
        'letzte benutzte Zeile in Spalte M finden
        For lZeile = .UsedRange.Rows.Count + .UsedRange.Row To 1 Step -1
            If Not IsEmpty(.Cells(lZeile, 13)) Then
                lngLetzte2017 = lZeile
                Exit For
            End If
        Next
                        
        For lZeile = lngLetzte2017 To 3 Step -1             ' Schleife über alle Zeilen
            If Not IsEmpty(.Cells(lZeile, 13)) Then         ' Wenn Zelle in Spalte M nicht leer
                If Application.WorksheetFunction.CountIf(Sheets("update").Range("M:M"), .Cells(lZeile, 13)) < 1 Then
                    'ist im Sheet "update" in Spalte M nicht vorhanden
                    .Rows(lZeile).Delete                    ' Zeile löschen
                End If
            End If
        Next
    End With

' insert / update
    With Sheets("update")
        lngLetzte = .UsedRange.Rows.Count + .UsedRange.Row - 1                      ' letzte Zeile im Tabellenblatt "update"
        For lZeile = 1 To lngLetzte                                                 ' Schleife über alle Zeilen
            If Not IsEmpty(.Cells(lZeile, 13)) Then                                 ' Wenn Zelle in Spalte M nicht leer
                Set rngM = Sheets("2017").Range("M:M").Find(.Cells(lZeile, 13))     ' Nach Zellinhalt in '2017'!M:M suchen
                If rngM Is Nothing Then                                             ' Wenn nichts gefunden wurde
                    'Wenn der Wert aus Zeile M (Sheet Update) nicht in Zelle M (Sheet 2017) autaucht dann gesamte Zeilen-Linie aus (Sheet Update) in Sheet 2017 einfügen.
                    lngLetzte2017 = lngLetzte2017 + 1
                    Sheets("2017").Rows(lngLetzte2017).Insert , CopyOrigin:=xlFormatFromLeftOrAbove     ' Zeile einfügen
                    Sheets("2017").Range("A" & lngLetzte2017 & ":N" & lngLetzte2017).Value = .Range("A" & lZeile & ":N" & lZeile).Value  'Werte kopieren
                Else
                    'Wenn der Wert aus Zeile M (Sheet Update) in Zeile M (Sheet 2017) besteht, dann < Wert aus Zeile F (Sheet Update) in (Sheet 2017) übernehmen.
                    rngM.Offset(0, -7).Value = .Cells(lZeile, 6).Value              ' Wert aus Spalte F übernehmen
                End If
            End If
        Next
    End With

End Sub

Grüße, Ulrich
[-] Folgende(r) 1 Nutzer sagt Danke an losgehts für diesen Beitrag:
  • iamye
Antworten Top
#9
(23.03.2018, 07:38)losgehts schrieb: Hallo,

ein paar Infos zu den drei wichtigsten Begriffen rund um Excel (meiner Meinung nach):
Jede Tabelle besteht aus Zeilen und Spalten.
Zeilen verlaufen horizontal (von links nach rechts) und werden durch Zahlen beschrieben (z.B. Zeile 1 oder Zeile 22).
Spalten verlaufen vertikal (von oben nach unten) und werden durch Buchstaben beschrieben (z.B. Spalte A oder Spalte M).
Eine Zelle ist eines dieser "Kästchen" der Tabelle, wo sich eine Zeile und eine Spalte kreuzen. Die Zellen haben Adressen, die aus den Buchstaben der Spalten und der Zeilennummer bestehen. Z.B. Zelle A1 oder Zelle M13.

Es hilft mir sehr, wenn du diese Begriffe richtig verwendest.


Ich habe dir ein kleines Makro geschrieben. Bitte teste es selbst (an Testdaten!):
Code:
Sub nameSelbstAnpassen()
Dim lngLetzte2017 As Long, lngLetzte As Long, lZeile As Long, rngM As Range
'Wenn der Wert aus Zeile M (Sheet 2017) nicht in Zeile M (Sheet Update) auftaucht dann "hier im Beispiel Zeile 13" aus Sheet 2017 löschen.
   With Sheets("2017")
       'letzte benutzte Zeile in Spalte M finden
       For lZeile = .UsedRange.Rows.Count + .UsedRange.Row To 1 Step -1
           If Not IsEmpty(.Cells(lZeile, 13)) Then
               lngLetzte2017 = lZeile
               Exit For
           End If
       Next
                       
       For lZeile = lngLetzte2017 To 3 Step -1             ' Schleife über alle Zeilen
           If Not IsEmpty(.Cells(lZeile, 13)) Then         ' Wenn Zelle in Spalte M nicht leer
               If Application.WorksheetFunction.CountIf(Sheets("update").Range("M:M"), .Cells(lZeile, 13)) < 1 Then
                   'ist im Sheet "update" in Spalte M nicht vorhanden
                   .Rows(lZeile).Delete                    ' Zeile löschen
               End If
           End If
       Next
   End With

' insert / update
   With Sheets("update")
       lngLetzte = .UsedRange.Rows.Count + .UsedRange.Row - 1                      ' letzte Zeile im Tabellenblatt "update"
       For lZeile = 1 To lngLetzte                                                 ' Schleife über alle Zeilen
           If Not IsEmpty(.Cells(lZeile, 13)) Then                                 ' Wenn Zelle in Spalte M nicht leer
               Set rngM = Sheets("2017").Range("M:M").Find(.Cells(lZeile, 13))     ' Nach Zellinhalt in '2017'!M:M suchen
               If rngM Is Nothing Then                                             ' Wenn nichts gefunden wurde
                   'Wenn der Wert aus Zeile M (Sheet Update) nicht in Zelle M (Sheet 2017) autaucht dann gesamte Zeilen-Linie aus (Sheet Update) in Sheet 2017 einfügen.
                   lngLetzte2017 = lngLetzte2017 + 1
                   Sheets("2017").Rows(lngLetzte2017).Insert , CopyOrigin:=xlFormatFromLeftOrAbove     ' Zeile einfügen
                   Sheets("2017").Range("A" & lngLetzte2017 & ":N" & lngLetzte2017).Value = .Range("A" & lZeile & ":N" & lZeile).Value  'Werte kopieren
               Else
                   'Wenn der Wert aus Zeile M (Sheet Update) in Zeile M (Sheet 2017) besteht, dann < Wert aus Zeile F (Sheet Update) in (Sheet 2017) übernehmen.
                   rngM.Offset(0, -7).Value = .Cells(lZeile, 6).Value              ' Wert aus Spalte F übernehmen
               End If
           End If
       Next
   End With

End Sub

Grüße, Ulrich

Hallo Ulrich,

das GANZE Funktioniert einwandfrei ! Vielen vielen Dank :)

Jedoch müssen noch 2 Funktionen hinzugefügt werden:

- Wenn der Text aus Spalte L (Seite - update) =/ Text aus Spalte L (Seite - 2017) dann Text aus Spalte L (Seite - update) übernehmen.
- Wenn der Wert aus Spalte F (Seite - 2017) ändert, dann Zelle (aus Spalte A, Seite - 2017) löschen.


Spalte A (Seite - 2017) soll eine auszuwählende liste bekommen.

-> envoyé // wenn dieses wort ausgewählt ist soll die Reihe A3 - N3 zb. gelb markiert werden.



Letzte Frage.., ist es möglich die Sätze im Makro zu ändern ?



Mit freundlichen Grüßen
Antworten Top
#10
Hallo iamye,

du musst nicht bei jeder Antwort den vorigen Beitrag zitieren. Benutze stattdessen bitte den Antworten-Button am Ende der Beiträge. Sollten in Einzelfällen Zitate notwendig sein, kannst du sie auch auf das Notwendige kürzen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • iamye
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste