online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon achmi71 vom 14.01.2019, 19:31 Options

wieder Makro Code

Hallo,

ich bin es wieder mal und zwar mit folgendem Problem der folgende Code funktioniert so weit, nur müsste da noch eine abfrage mit eingebaut werden und zwar dürfen nur die Zellen gelöscht werden, wenn in der entsprechenden Zeile, Zelle B gleich H1 ist.
Ich hoffe das ist einigermaßen verständlich erklärt.



Dim Zelle As Range
For Each Zelle In Range("j3:j1500")
If Zelle = "ab" Then Range("a" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("b" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("c" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("d" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("e" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("f" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("g" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("h" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("i" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("k" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("n" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("j" & Zelle.Row).ClearContents
If Zelle = "ab" Then Range("l" & Zelle.Row).ClearContents
If Zelle = "auf" Then Range("k" & Zelle.Row).ClearContents
If Zelle = "auf" Then Range("l" & Zelle.Row).ClearContents
If Zelle = "auf" Then Range("m" & Zelle.Row).ClearContents
If Zelle = "auf" Then Range("n" & Zelle.Row).ClearContents
If Zelle = "auf" Then Range("j" & Zelle.Row).ClearContents

Next Zelle
End Sub


Gruß
Achim


Antwort schreiben

Antwort 1 von Hajo_Zi vom 14.01.2019, 19:47 Options

Hallo Achim,

ich hoffe mal ich habe mich nicht vertan. Ich habe Dein Beispiel nicht nachgebaut.
Option Explicit

Sub Achim()
Dim Zelle As Range
For Each Zelle In Range("j3:j1500")
If Zelle = "ab" And Zelle.Offset(0, -9) = Range("H1") Then
Range(Cells(Zelle.Row, 1), Cells(Zelle.Row, 11)).ClearContents
Range("n" & Zelle.Row).ClearContents
ElseIf Zelle = "ab" And Zelle.Offset(0, -9) = Range("H1") Then
Range(Range("l" & Zelle.Row), Range("n" & Zelle.Row)).ClearContents
End If
Next Zelle
End Sub

Gruß Hajo

Antwort 2 von achmi71 vom 14.01.2019, 20:00 Options

Hallo Hajo,

es tut mir leid aber dein Code funktioniert nicht.
Ich versuche es noch einmal mit der Beschreibung.
Und zwar werden ja mit dem Code die Zellen in der Zeile gelöscht in der die Zelle J gleich "ab" ist, jetzt soll das ganze aber nur funktioniern wenn in der gleichen Zeile die Zelle B = H1 ist und natürlich J= "ab" ist.

Ich hoffe das war jetzt einigermaßen verständlich.

Gruß und Danke schon mal
Achim

Antwort 3 von Hajo_Zi vom 14.01.2019, 20:11 Options

Hallo Achim,

ich hatte schon geschrieben ich baue Deine Datei nicht nach. Vielleicht solltest Du Sie mal hochladen?.

Gruß Hajo

Antwort 4 von achim71 vom 14.01.2019, 20:40 Options

Hallo,

so nun der Link zur Datei, ist aber nur eine abgespeckte Version.
Da in der Mappe schon daten vorhanden sind die ich nicht so einfach Preisgeben darf.

http://www.netupload.de/img.php/513c0d1989b099ea8e6abdd14599e286.xls

Gruß
Achim

Antwort 5 von Hajo_Zi vom 14.01.2019, 20:55 Options

Hallo Achim,

eine Datei stellt doch vielles tausend mal besser da als tausend Worte.

test es mal mit diesem Code

Option Explicit

Sub Achim()
Dim Zelle As Range
For Each Zelle In Range("j3:j1500")
If Zelle = "ab" And Zelle.Offset(0, -8) = Range("H1") Then
Range(Cells(Zelle.Row, 1), Cells(Zelle.Row, 11)).ClearContents
Range("n" & Zelle.Row).ClearContents
ElseIf Zelle = "auf" And Zelle.Offset(0, -8) = Range("H1") Then
Range(Range("l" & Zelle.Row), Range("n" & Zelle.Row)).ClearContents
End If
Next Zelle
End Sub

Warum beginnst Du in J3, das ist doch die Überschriftenzeile?

Gruß Hajo

Antwort 6 von achim71 vom 14.01.2019, 21:04 Options

Hallo Hajo,

da geb ich dir Recht eine Datei sagt immer mehr aus als Worte, so jetzt funktioniert das ganze aber leider nur fast, die Zellen J und K werden nicht gelöscht bei der abfrage mit "auf".


Gruß und schon mal vielen Dank
Achim

Antwort 7 von Hajo_Zi vom 14.01.2019, 21:07 Options

Hallo Achim,

Du hast doch den Original Code erstellt da dürfte dieses Probllem doch ein leichtes sein?
Option Explicit

Sub Achim()
Dim Zelle As Range
For Each Zelle In Range("j3:j1500")
If Zelle = "ab" And Zelle.Offset(0, -8) = Range("H1") Then
Range(Cells(Zelle.Row, 1), Cells(Zelle.Row, 11)).ClearContents
Range("n" & Zelle.Row).ClearContents
ElseIf Zelle = "auf" And Zelle.Offset(0, -8) = Range("H1") Then
Range(Range("l" & Zelle.Row), Range("n" & Zelle.Row)).ClearContents
Range(Range("J" & Zelle.Row), Range("K" & Zelle.Row)).ClearContents
End If
Next Zelle
End Sub

Ich mache jetzt Feierabend.

Gruß Hajo

Antwort 8 von achim71 vom 14.01.2019, 21:11 Options

Hallo Hajo,

Danke noch einmal, hab den Fehler gefunden du hast den Spalten Buchstaben verwechselt bei "auf" muß das löschen ab der Spalte J beginnen und nicht bei L.
Jetzt funktioniert das ganze super.
Ach ja, die Daten fangen natürlich erst bei der Zeile 4 an und deswegen darf es nicht J3 sondern J4 lauten.


Gruß und einen schönen Abend
Achim

Antwort 9 von achim71 vom 14.01.2019, 21:12 Options

Hallo Hajo,

du warst ein wenig schneller als ich.

Ich auch.

Gruß
Achim

Ähnliche Themen

Alternative Menüfunktionen
danielG  10.07.2007 - 28 Hits - 2 Antworten

Excel Makro in viele Excel Files exportieren
SteffenVV  23.07.2007 - 143 Hits - 1 Antwort

Brauche Tipps für einen individuellen VBA-Code
varginator  03.04.2008 - 118 Hits - 14 Antworten

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