Makro zum Entfernen von Zellinhalten

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Makro zum Entfernen von Zellinhalten
von: Alex
Geschrieben am: 23.09.2003 14:26:08

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!

Bild


Betrifft: AW: Makro zum Entfernen von Zellinhalten
von: LotharP
Geschrieben am: 23.09.2003 15:33:17

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


Bild


Betrifft: HAAALT!
von: LotharP
Geschrieben am: 23.09.2003 15:44:37

Hallo Alex,

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

Gruß

Lothar


Bild


Betrifft: Rest kommt noch!
von: LotharP
Geschrieben am: 23.09.2003 15:55:07


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



Bild


Betrifft: AW: Rest kommt noch!
von: Alex
Geschrieben am: 23.09.2003 16:19:29

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


Bild


Betrifft: AW: Rest kommt noch!
von: LotharP
Geschrieben am: 23.09.2003 16:47:26

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


Bild


Betrifft: AW: Aber jetzt!
von: LotharP
Geschrieben am: 23.09.2003 17:18:53

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


Bild


Betrifft: AW: Aber jetzt!
von: Alex
Geschrieben am: 24.09.2003 09:52:39

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


Bild


Betrifft: AW: Sorry!
von: LotharP
Geschrieben am: 25.09.2003 11:10:44

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


Bild


Betrifft: ALLERLETZTERVERSUCH!
von: LotharP
Geschrieben am: 25.09.2003 13:19:23

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!


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Makro zum Entfernen von Zellinhalten"