Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

Makro zum Entfernen von Zellinhalten

Makro zum Entfernen von Zellinhalten
23.09.2003 14:26:08
Alex
Hallo,

ich bräucht ein Makro, dass mir den Zellinhalt jeder Zelle, in meinem Fall ein "x" entfernt, wenn in den Zellen daneben (also andere Zelle) eine "0" steht.
Also, als ob ich die Zelle mit dem "x" anklicken und auf entfernen drücken würde. Nachdem all diese Zellinhalte gelöscht sind, soll Excel zu den nächsten Blättern wechseln und den Vorgang dort weiterführen.
Vielen Dank!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum Entfernen von Zellinhalten
23.09.2003 15:33:17
LotharP
Hallo Alex,
lässt sich über Makro aufzeichnen weitestgehend lösen, denke ich.
Das einzige ist der Wechsel der Arbeitsblätter.
Probiers vieleicht erst mal in einem Blatt?

Gruß

Lothar
HAAALT!
23.09.2003 15:44:37
LotharP
Hallo Alex,

meine Antwort war nur in Teilen brauchbar.
Meld'mich gleich, mein Chef steht hier und nervt!

Gruß

Lothar
Rest kommt noch!
23.09.2003 15:55:07
LotharP

Sub Makro1()
'DAS ERST MAL FÜR EIN BLATT!
'Rest kommt gleich! Die nerven!
Cells.Find(What:="x", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
ActiveCell.Offset(0, -1).Range("A1").ClearContents  ' bei links (0, 1) bei rechts
End Sub

Anzeige
AW: Rest kommt noch!
23.09.2003 16:19:29
Alex
Hallo Lothar,

erst mal danke für deine Hilfe. Leider bin ich jetzt schon zu Hause und
kann das Makro heute nicht mehr testen. Werde es morgen versuchen.
Wäre dir dankbar für den Rest!

Gruß
Alex
AW: Rest kommt noch!
23.09.2003 16:47:26
LotharP
Hallo Alex,
sorry den Rest muß ich morgen mal schauen, klappt jetzt auch nich mehr bei mir. Bin in Hektik!
Hab zwischenzeitlich noch'n bisschen was gemacht, hoffe das hilft noch'n stück weiter?!:


Sub nblatt()
Dim DANEBEN
On Error GoTo raus:
Do
Cells.Find(What:="x", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
DANEBEN = ActiveCell.Offset(0, -1).Range("A1").Value
If DANEBEN = "" Then
GoTo raus:
Else
ActiveCell.Offset(0, -1).Range("A1").ClearContents  ' bei links (0, 1) bei rechts
End If
Loop
raus:
End Sub


Gruß

Lothar
Anzeige
AW: Aber jetzt!
23.09.2003 17:18:53
LotharP
Hallo Alex,

habs jetzt doch noch grad fertig gemacht.
Mußte auch zweimal überlegen!
Hoffe das hier isses?

Sub Blaetter()
Dim i As Byte
Sheets(1).Select
For i = 1 To Sheets.Count
Sheets(i).Select
nblatt
Next i
End Sub



Sub nblatt()
Dim DANEBEN
On Error GoTo raus:
Do
Cells.Find(What:="x", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
DANEBEN = ActiveCell.Offset(0, -1).Range("A1").Value
If DANEBEN = "" Then
GoTo raus:
Else
ActiveCell.Offset(0, -1).Range("A1").ClearContents  ' bei links (0, 1) bei rechts
End If
Loop
raus:
End Sub


Das is insgesammt sehr unelegant, wollte ne for next Schleife basteln, hab's aber nicht hingekriegt und GOTO is Schweineprogrammierung sagen die Cracks, aber nun gut, ich glaub' aber es wirkt?!

Gruß

Lothar
Anzeige
AW: Aber jetzt!
24.09.2003 09:52:39
Alex
Hallo Lothar,

leider funktioniert das Ganze noch nicht so wie es soll.
Das mit dem Wechsel der Tabellen das klappt, aber mit dem löschen der "x"
noch nicht.
Vielleicht erkläre ich mein Probelem nochmal.
Ich habe mehrere Tabellen deren Zellen wiederum mit anderen Tabellen verknüpft sind.
Gibt es in den Quelldateien keine Daten so wird anstelle der Daten ein "x" angezeigt.
Für die weitere Verarbeitung müssen diese "x" aber gelöscht werden, wenn in den Zellen
rechts davon eine "o" steht.
Danke nochmal!

Gruß
Alex
AW: Sorry!
25.09.2003 11:10:44
LotharP
Hallo Alex,

Hab' gestern irgendwie nicht mehr gesehen das du nochmal geantwortet hast.
Dein Problem hab' ich gerade umgebaut, allerdings bin ich nicht so richtig weitergekommen! Hab' jetzt auch leider keine Zeit!
Tut mir Leid.
Am besten du postest nochmal, eventuell mit dem anfang von mir.

Gruß

Lothar
Anzeige
ALLERLETZTERVERSUCH!
25.09.2003 13:19:23
LotharP
Hallo Alex,

Hab' versucht zu helfen, allerdings recht Erfolglos!
Aber jetzt, mit Hilfe vom Kollege!
EAT THIS: ;-)

Sub Blaetter()
Dim i As Byte
Sheets(1).Select
For i = 1 To Sheets.Count
Sheets(i).Select
Call nblatt(i)
Next i
End Sub



Sub nblatt(i)
Dim bereich1 As Range
Dim Wkb1 As Workbook
Dim zelle As Range
Dim Daneben
Set Wkb1 = ActiveWorkbook
Set bereich1 = Wkb1.Sheets(i).Range("a1:c20") 'Den Bereich mußt du entsprechend anpassen!
MsgBox bereich1.Count                         'Es gibt auch etwas wie used cells, aber kA
For Each zelle In bereich1
'MsgBox zelle.Address
Daneben = zelle.Offset(0, 1).Value
If zelle.Value = "x" Then
If Daneben = 0 Then
zelle.ClearContents
Else
End If
End If
Next zelle
End Sub


Gruß

Lothar

Ps.: Hoffe das ist es jetzt, es hat mir keine Ruhe gelassen!
Aber bin halt leider auch kein Könner!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige