Microsoft Excel

Herbers Excel/VBA-Archiv

VBA erkennt Zahl erst nach händischer Eingabe


Betrifft: VBA erkennt Zahl erst nach händischer Eingabe
von: Ahmet
Geschrieben am: 19.06.2017 08:48:01

Morgen allerseits,

ich habe folgendes anliegen:
Ich habe eine Zeile folgend aufgebaut:
G H I J K L M N O P
1 2 3 4 5 0 0 0 0 0

Nun will ich ein Code schreiben der mir die erste 0 findet und dann alle 0 löscht.
Quasi soll dann die Spalte K noch beschrieben sein und ab da bis P gelöscht werden.
Dabei dürfen die weiteren Zellen nach P nicht nach links verschoben werden.

Ich habe folgendes Probiert um den Wert überhaupt zu finden:

Sub test()

 Dim bereich As Range
 Dim y As Variant
 y = 0
 Set bereich = Sheets("Auswertung").Rows(7).Find(y, LookAt:=xlWhole)
 If bereich Is Nothing Then
     MsgBox "Nicht gefunden"
 Else
     MsgBox "Zahl in Spalte " & bereich.Column & " gefunden"
 End If

End Sub

Allerdings erkennt dieser Code den Wert erst wenn ich ihn händisch eintippe. Ursprünglich kommt der Wert aus einer anderen Tabelle und wurde einfach per =Tabelle1!C3 verknüpft. Alle Werte sind als Zahl formatiert.

Vielen Dank

  

Betrifft: AW: VBA erkennt Zahl erst nach händischer Eingabe
von: Bernd
Geschrieben am: 19.06.2017 08:55:09

Hi,

mal zum probieren:

Option Explicit

Sub Nullweg()
Dim rng As Range
For Each rng In Range("G1:P1")
If rng.Value = 0 Then rng.ClearContents
Next
End Sub
MfG Bernd


  

Betrifft: AW: VBA erkennt Zahl erst nach händischer Eingabe
von: Ahmet
Geschrieben am: 19.06.2017 09:00:39

Klasse funktioniert. Danke!
Ich würde das gerne noch in eine Schleife einbinden.
Von Zeile 6 bis 15 sollte das ganze funktionieren.


  

Betrifft: AW: VBA erkennt Zahl erst nach händischer Eingabe
von: Chris
Geschrieben am: 19.06.2017 09:22:08

Sub Nullweg()
Dim rng As Range
For Each rng In Range("G6:P15")
If rng.Value = 0 Then rng.ClearContents
Next
End Sub



  

Betrifft: AW: VBA erkennt Zahl erst nach händischer Eingabe
von: Ahmet
Geschrieben am: 19.06.2017 10:18:45

Sub Format()
 
Range("A1").Copy
For Each rng In Range("G14:P15")
    If rng = "" Then .PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False
    End If
 Next
End Sub
Ich würde gerne die gelöschten Zellen mit "A1" einfügen. Hintergrund ist, dass die Zelle A1 einfach weiß gefüllt ist (der Optik zu gute). Allerdings kriege ich ein Fehler bei ".... Then.PasteSpecial ...."
An dieser Stelle Danke für eure Hilfe und Sorry dass dieser Einwand im Nachhinein kommt - hat sich aber erst jetzt ergeben :/


  

Betrifft: AW: VBA erkennt Zahl erst nach händischer Eingabe
von: Chris
Geschrieben am: 19.06.2017 10:23:41

Sub Format()
 

For Each rng In Range("G14:P15")
    If rng = "" Then rng.Interior.ColorIndex = 2
 Next
End Sub



  

Betrifft: AW: VBA erkennt Zahl erst nach händischer Eingabe
von: Chris
Geschrieben am: 19.06.2017 10:25:48

Dim rng As Range

fehlt noch

Sub Format()
 
Dim rng As Range
For Each rng In Range("G14:P15")
    If rng = "" Then rng.Interior.ColorIndex = 2
 Next
End Sub



  

Betrifft: AW: VBA erkennt Zahl erst nach händischer Eingabe
von: Ahmet
Geschrieben am: 19.06.2017 10:26:21

Das Klappt leider nicht. Die gelöschten Zellen waren vorher mit einer Bedingten Formatierung hinterlegt. Die Formatierung bleibt dann dennoch bestehen. Daher habe ich bis jetzt immer die Zelle A1 kopiert und eingefügt.


  

Betrifft: AW: VBA erkennt Zahl erst nach händischer Eingabe
von: Chris
Geschrieben am: 19.06.2017 10:34:13

und in die bedingte Formatierung "wenn leer dann weiß" mit aufmehmen ist auch keine lösung?

ansonsten

Sub Format()
 

Dim rng As Range

For Each rng In Range("G14:P15")
    If rng = "" Then
       rng.ClearFormats
       rng.Interior.ColorIndex = 2
    End If
 Next
End Sub




  

Betrifft: Then rng.Pastespecial .... owT
von: Rudi Maintaire
Geschrieben am: 19.06.2017 12:56:39