Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

Makro -in Spalte nach Wert suchen und löschen
#1
Guten Tag zusammen,
ich möchte gern ein Makro erstellen, welches in einer Datei -> Spalte einen Wert sucht, diese Spalte dann löscht.


Z.B. in Spalte A soll nach dem Wert "8" gesucht warden.
Alle Zeilen mit dem Wert "8" sollen gelöscht warden.


Vielen Dank !
Top
#2
Moin,
ich habe den Eindruck, dass du in Sachen VBA absolut unbedarft bist. Das ist zwar nicht schlimm, aber warum soll es denn dann unbedingt ein Makro sein? Das geht schließlich recht passabel mit einfachem filtern und dann löschen.

Du kannst ansonsten ja einfach einmal anfangen, das Ganze mit dem Makrorecorder aufzuzeichnen, dann hast du zumindest eine kleine Basis.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
[-] Folgende(r) 1 Nutzer sagt Danke an GMG-CC für diesen Beitrag:
  • technoente
Top
#3
Hallo,

Zitat:Du kannst ansonsten ja einfach einmal anfangen, das Ganze mit dem Makrorecorder aufzuzeichnen, dann hast du zumindest eine kleine Basis.

wenn Du das dann aufzeichnest und bearbeitest, solltest Du beachten, daß Du Dich beim Löschen von Zeilen
von unten nach oben vorarbeitest und nicht umgekehrt. Sonst verschluckt Excel sich.
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • technoente
Top
#4
Das ist natürlich richtig, Peter.
Ich dachte allerdings weniger an die "lahme" Lösung per Schleife als eher an das filtern der zu eliminierenden Zeilen, die dann mit einem Rutsch gelöscht werden.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
[-] Folgende(r) 1 Nutzer sagt Danke an GMG-CC für diesen Beitrag:
  • technoente
Top
#5
Hallo ihr zwei,
danke für die schnelle Antwort.
Ich versuche mir standing Sachen zusammen zu basteln.
Z.B.

Code:
Sub Löschenrückwärts()

' Löschenrückwärts Makro

   ActiveSheet.Name = "SAPausfuhr"

   Range("AB:AB,AA:AA,V:V,S:S,R:R,Q:Q,P:P,O:O,L:L,I:I").Select 'Spalten welche gelöscht werden von hinten auswählen
   
   Range("I1").Activate                                        'ausgewählten Bereich aktivieren
   
   Selection.Delete shift:=xlToLeft                            'ausgewählten Bereich löschen
   
   Range("K:K,I:I,G:G,C:C,A:A").Select                         'die leeren Spalten löschen, falls var. anderer Befehl
   
   Range("A1").Activate                                        'ausgewählten Bereich aktivieren
   
   Selection.Delete shift:=x1toLeft                            'ausgewählten Bereich löschen
   
   Dim Zeile As Long                                           'Var. festlegen mit Zahlen von  -2.147.483.648 - +2.147.483.647
   
   With Tabelle1                                               'worksheet Name
       
   For Zeile = .UsedRange.Row + .UsedRange.Rows.Count - 1 To 1 Step -1 'Schleife sucht von HINTEN nach Leerzeilen
       
   If Application.CountA(.Rows(Zeile)) = 0 Then .Rows(Zeile).EntireRow.Delete 'wenn eine Leerzeile gefunden wird, diese löschen
   
                 
   Next                                                                'Schleife
           
   End With                                                            'Ende der Schleife
       
   Range("A1,B1,D1").Select                                            'makieren von einzelnen Zellen
   
   Selection.ClearContents                                             'Inhalt makierte Zellen löschen
   
   Range("D2").Select                                                  'D2 auswählen
   
   ActiveCell.FormulaR1C1 = "Verk.Org"                                 'in aktive Zelle reinschreiben
   
   Dim Bereich As Range
   
   Set Bereich = Sheets("SAPausfuhr").cell(B).Find("NU,FS,NRT,FM,NGU,FP,PU", LookAt:=xlWhole)
   

   
   End If


End Sub
die Kommentare habe ich mir slebst, nach bestem Gewissen gemacht.
Ich versuche immer mehr zu lernne und selbstständig Sachen anzueignen.
Nun hackt es aber Z.B. bei dem oben beschriebenen Problem.
Liebe Grüße
Und danke!
Top
#6
Hallo,

in der Ursprungsfrage stand etwas von "wenn Wert=8 dann löschen". Der gezeigte Code macht aber etwas anderes:


Code:
.Find("NU,FS,NRT,FM,NGU,FP,PU",


Auch wenn es ohne die Daten zu kennen nicht so einfach zu beurteilen ist, der Code funktioniert (vermutlich) nicht.

Ist es möglich, eine kleine, aber in der Struktur richtige Beispiel-Datei hochzuladen und das Ziel noch etwas präziser zu beschreiben?

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • technoente
Top
#7
ups, die habe ich vergessen rauszulöschen. das war einer meiner Versuche welcher nicht geklappt haben.
habe anbei eine Datei angehängt.
.xlsx   Testdatei.xlsx (Größe: 11,09 KB / Downloads: 4)
Ich möchte eigentlich nur, dass es sozusagen entweder in Spalte A den Wert "8" sucht, und die komplette Zeile makiert, und diese dann gelöscht wird.
Oder
In Spalte "B" die Werte FM, FP , FS etc. sucht, dann die Zeile makiert und ebenfalls löscht.

Code:
Columns("B:B").Select
   Selection.Find(What:="FM", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
       :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
       False, SearchFormat:=False).Activate

So jetz müsste ich sagen, Ergebnise makieren, auswählen und betroffenne Zeilen anwählen und löschen, von unten nach oben, richtig?
Top
#8
Hallo,

ohne Makros:

mit Autofilter in Spalte A die 8 auswählen

Das Menü-Icon "nur sichtbare Zellen auswählen" aktivieren.

Per Maus von A3 bis Tabellenende markieren: löschen

Spalte A markieren: F5, Inhalte: leere Zellen

Rechte Maustaste: löschen:ganze Zeile

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • technoente
Top
#9
kleiner Nachtrag:

Bis auf die zweite Überschrift geht:


Code:
Sub Fen_()
With ActiveSheet.UsedRange
   .AutoFilter 1, 8
   .EntireRow.Delete
   .AutoFilter
End With
End Sub


mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • technoente
Top
#10
vielen Dank für deine Antwort!
Aber ware es nicht am Besten, wenn ich es als Makro mache? Ich möchte das ja in mein oben gepostetes Makro mit einfügen.
Liebe Grüße
und vielen Dank für eure Hilfe !!
Top


Gehe zu:


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