online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon emap vom 22.02.2019, 15:08 Options

Fehler im VBA-Code

ich bin etwas ratlos.
Ich habe diesen Code, doch er will nicht laufen.

Ich will in den Spalten, die als Spaltenbezeichnung "BO1" haben, in den einzelnen Zeilen die angaben mit "0" löschen.
Ich habe etwas falsch gemacht, er geht nicht in die nächste Spalte. Kannst Du mir meinen Fehler nennen?
meine Tabelle:
co mo BO1 co mo BO1
36166 36169
36169 36166
36163 0,57 0 36163 10,2 0
36164 0,77 0 36164 9,8
36165 2,1 0 36165 21,8 0
36166 0,72 0 36166 11,1
36167 0,96 36167 14,7


    Sub Null_löschen()
    Dim leZeile As Integer, leSpalte As Integer
    Dim I As Long, Sp As Long
    Dim Inh As Long
    Dim Bereich As Range

    leZeile = Sheets("Endausw").UsedRange.Rows.Count
    'letzte gefüllte Spalte der Tabelle feststellen
    leSpalte = Sheets("Endausw").Range("IV1").End(xlToLeft).Column
    Sheets("Endausw").Select
    For Sp = 1 To leSpalte
    If Cells(1, Sp) = "BO1" Then
    Set Bereich = Range(Sp & ":" & Sp)
    For I = 2 To leZeile
    If Cells(Sp, I) = "0" Then Cells(Sp, I) = ""
    Next I
    End If
    Next Sp
    End Sub


Vielleicht mir jemand helfen. Entweder habe ich den Bereich nicht richtig gekennzeichnet, oder die Variablen-Bezeichnung ist falsch.

Vielen Dank schon jetzt


Antwort schreiben

Antwort 1 von Hajo_Zi vom 22.02.2019, 15:38 Options

Hallo NAmensloser,

Option Explicit

Sub Null_löschen()
Dim leZeile As Integer, leSpalte As Integer
Dim I As Long, Sp As Long
Dim Inh As Long
Dim Bereich As Range
Dim RaZelle As Range
With Sheets("Endausw")
leZeile = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
'letzte gefüllte Spalte der Tabelle feststellen
leSpalte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
For Sp = 1 To leSpalte
If .Cells(1, Sp) = "BO1" Then
Set Bereich = .Range(.Cells(2, Sp), .Cells(leZeile, Sp))
For Each RaZelle In Bereich
If RaZelle = "0" Then RaZelle = ""
Next RaZelle
End If
Next Sp
End With
Set Bereich = Nothing
End Sub

Gruß Hajo

Antwort 2 von emap vom 22.02.2019, 15:41 Options

co............... mo ...... BO1......... co ....... .. mo ....... BO1
36166 .. .......0.......................... 36169 .........0...
36169 ..........0.......................... 36166
36163...... 0,57 ........ 0.......... 36163 ... ... 10,2 ......... 0
36164...... .... 0........... 0 ......... 36164 ....... 9,8
36165 ........ 2,1 .... .... 0 ......... 36165 ..... 21,8 ......... 0
36166 ...... 0,72 ........ 0 ......... 36166 ...... 11,1
36167...... 0,96 ..................... 36167 ...... 14,7

hier noch einmal die Tabelle hoffentlich übersichtlicher
ich sollte vielleicht noch einmal auf das Problem hinweisen: da auch in anderen Spalten "0" auftreten kann, die nicht gelöscht werden sollen, reicht "suchen - ersetzen" nicht.

Vielen Dank emap

Antwort 3 von emap vom 22.02.2019, 15:46 Options

Hallo Hajo,
vielen Dank für die schnelle Reaktion, hae es probiert mit dem Code. Leider läuft er nicht. Er läuft ohne Fehlermeldung durch, aber es ändert sich nichts.

Gruß
emap

Antwort 4 von Hajo_Zi vom 22.02.2019, 15:50 Options

Hallo Namensloser,

ich habe mich an Deine Beschreibung gehalten. Es wird Zeile 1 geprüft ob da "BO1" steht. In de Spalte werden alle Einträge mit 0 durch nichts ersetzt.

Gruß Hajo

Antwort 5 von nighty vom 22.02.2019, 20:09 Options

hi all :-)

noch ein beispiel

gruss nighty

Sub Makro3()
Application.Goto Reference:="BO1"
Selection.Replace What:="0", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=True
Range("A1").Select
End Sub

Antwort 6 von nighty vom 22.02.2019, 20:12 Options

hi all :-)

war uebrigens 2 min makrorecorder :-)

es fehlt den membern fast immer ein wenig an phantasie hihi

gruss nighty

Ähnliche Themen

Excel schließen (VBA)
Jugo  15.03.2007 - 312 Hits - 1 Antwort

VBA Code eingeben/ wie ?
MaKa  07.10.2007 - 90 Hits -

VBA-Editor öffnen und schließen
maxim66  14.03.2008 - 98 Hits - 2 Antworten

Formel per VBA in Zelle schreiben
Kauz  17.04.2008 - 82 Hits - 2 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