Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

IF-THEN in VBA

IF-THEN in VBA
28.09.2007 08:42:00
serge
Hallo Leute
Wie bekomme ich folgendes IF in ein VBA
if ActiveCell.Formula(() = "=LEFT(RC[1],5)")="#DEL!" Then
Selection.EntireRow.Delete
wenn die Der Zellwert mit #DEL! beginnt Zeile löschen.
Danke
Serge

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: IF-THEN in VBA
28.09.2007 08:53:59
Renee
Hi Serge,
Meinst Du so:

IF LEFT(Activecell.Value,5) = "#DEL!" Then Activecell.EntireRow.Delete


GreetZ Renee

AW: IF-THEN in VBA
28.09.2007 09:25:36
serge
Hallo Renee
mit dieser Formel
IF LEFT(Activecell.Value,5) = "#DEL!"
Then Activecell.EntireRow.Delete
erkennt er die ersten 5 Buchstaben nicht und geht weiter!
(er sieht die Activecell.value als die ganze Eingabe)
Serge

AW: IF-THEN in VBA
28.09.2007 09:39:00
Renee
Hallo Serge,
Kannst Du mir sagen, von was du schreibst ?
1. Das ist keine Formel, sondern eine VBA Codezeile.
2. Was soll wer nicht erkennen ?
3. Wo hast Du diesen Code eingebaut und getestet ?
4. Wenn Du nur so fragmentarisch anfrägst, musst Du damit rechnen das auch sehr kurze Antworten zurückkommen, da ich annehme, die/der FragerIn weiss schon genau was sie/er will.
GreetZ Renee

Anzeige
AW: IF-THEN in VBA
28.09.2007 10:26:24
serge
Hi Renee
ich habe mich falsch ausgedrückt es sollte heissen:
mit dieser VBA-Formulierung!
Ich habe sie eingebaut und mit F8 getestet, wenn die Zelle aktiv ist, zeigt es in der VBA-Linie (mit dem Cursor) den ganzen Zellwert als Activcell.value an.
Serge

AW: IF-THEN in VBA
28.09.2007 10:39:32
Renee
Hi Serge,
Na super.... und der Code löscht anschliessend die Zeile nicht ? oder was?
Die LEFT Funktion wird nicht aufgelöst, d.h. wenn Du mit dem Cursor auf den Code-Ausdruck Activell.Value fährst siehst Du den ganzen Inhalt. Na und ? Die Left-Funktion kürzt ja nachher auf die erste 5 Stellen!
Ich weiss wirklich nicht wo Dein Problem ist .... !
GreetZ Renee

Anzeige
AW: IF-THEN in VBA
28.09.2007 10:49:00
serge
Renee
Der Code löscht effektiv die Zeile nicht und läuft weiter!
Ich habe den Code in eine Do Loop-Schleife eingebaut, mit zB.:
If ActiveCell.Value = 3 Then
Selection.EntireRow.Delete
klappt es!
Serge

AW: IF-THEN in VBA
28.09.2007 11:02:54
Renee
Hi Serge,
Bei VBA bescheiden, lässt Du vielleicht lieber Änderungen bleiben.
In meinem Code steht nix von Selection!
Jetzt testet Du plötzlich auf Inhalt = 3!
Wie sieht der Do Loop aus ?
So kommen wir nicht weiter und mir vergeht die Lust zum helfen...
Zeig mal den gesamten Code, was in deinem Blatt steht oder besser noch lade mal eine Beispielmappe hoch (in der es nicht funktioniert!).
GreetZ Renee

Anzeige
AW: IF-THEN in VBA
28.09.2007 11:12:54
serge
Renee
mein VBA:

Sub löschen
Application.Goto Reference:="R4C1"
ActiveCell.Offset(1, 0).Range("A1").Select
Do Until ActiveCell.Value  ""
ActiveCell.Offset(1, 0).Range("A1").Select
If ActiveCell.Value = 3 Then
Selection.EntireRow.Delete
End If
Loop
Application.Goto Reference:="R4C3"
ActiveCell.Offset(1, 0).Range("A1").Select
Do Until ActiveCell.Value  ""
ActiveCell.Offset(1, 0).Range("A1").Select
If Left(ActiveCell.Value, 5) = "#DEL!" Then
ActiveCell.EntireRow.Delete
End If
Loop
End Sub


Beim ersten Do-Loop klappt es, beim zweiten nicht!
Serge

Anzeige
AW: IF-THEN in VBA
28.09.2007 11:17:01
Renee
Hi Serge,
Sorry, das studier ich nicht. Das ist ein absolut hirnrissiger Code.
Beschreibe in Worten was das Makro machen soll und ich geb Dir den Code.
GreetZ Renee

AW: IF-THEN in VBA
28.09.2007 11:42:00
serge
Renee
Application.Goto Reference:="R4C1"
ActiveCell.Offset(1, 0).Range("A1").Select
Do Until ActiveCell.Value ""
ActiveCell.Offset(1, 0).Range("A1").Select
If ActiveCell.Value = 3 Then
Selection.EntireRow.Delete
End If
Loop
2)
Application.Goto Reference:="R4C3"
ActiveCell.Offset(1, 0).Range("A1").Select
Do Until ActiveCell.Value ""
ActiveCell.Offset(1, 0).Range("A1").Select
If Left(ActiveCell.Value, 5) = "#DEL!" Then
ActiveCell.EntireRow.Delete
End If
Loop
Folgendes soll geschehen:
1) In der Spalte A wenn die activezelle =3 , dann Zeile löschen, sonst eine Zeile weiter.
(das klappt)
2) In der Spalte C wenn(links(activzelle;5)="#DEL!", dann Zeile löschen, sonst eine Zeile weiter.
(das klappt nicht, er erkennt den Teil DEL! aus z.B: #DEL!Farbesortiment nicht und geht weiter)
Serge

Anzeige
AW: IF-THEN in VBA
28.09.2007 12:01:00
Renee
So Serge,
Dieses Makro macht genau, was Du beschrieben hast,
aber ich bin 100% überzeugt, es ist nicht das, was Du erwartest!
Code gehört in ein Modul:

Sub x()
Select Case ActiveCell.Column
Case 1
If ActiveCell.Value = 3 Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Activate
End If
Case 3
If Left(ActiveCell.Value, 5) = "#DEL!" Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Activate
End If
End Select
End Sub


GreetZ Renee

AW: IF-THEN in VBA
28.09.2007 13:09:00
Kay
Hallo Serge,
vieleicht Probierst du dies mal aus

Sub test1()
Dim lngZei As Long
For lngZei = Range("A65536").End(xlUp).Row To 1 Step -1
If InStrRev(UCase(Cells(lngZei, 1)), "#DEL!", , vbTextCompare) = 1 Or _
Cells(lngZei, 1) = 3 Then
Cells(lngZei, 1).EntireRow.Delete
End If
Next lngZei
End Sub


MfG
Kay

Anzeige
Auch ein netter Versuch...
28.09.2007 13:22:52
Renee
Kay, aber leider nicht das was Serge sucht. Er schreibt nämlich einmal von Spalte A und dann von Spalte C!
Also müsste Dein Code, zumindest diese Änderung erfahren:

Sub test1()
Dim lngZei As Long
For lngZei = Range("A65536").End(xlUp).Row To 1 Step -1
If InStrRev(UCase(Cells(lngZei, 3)), "#DEL!", , vbTextCompare) = 1 Or _
Cells(lngZei, 1) = 3 Then
Cells(lngZei, 1).EntireRow.Delete
End If
Next lngZei
End Sub


und selbstverständlich werden dann alle Zeilen mit den erfüllten Kriterien gelöscht. Obwohl das naheliegend scheint, ward davon bis jetzt aber nie explicit die Rede.
GreetZ Renee

Anzeige
AW: Auch ein netter Versuch...
28.09.2007 13:29:00
Kay
Hallo Renee,
ok wer lesen kann ist klar im Vorteil.
Danke für den Hinweis.
Er wird ja sicher darauf antworten.
MfG
Kay

AW: Auch ein netter Versuch...
28.09.2007 14:26:19
egres
Hallo Kay
dein Makro sucht nicht nach dem Wert : links(zelle;5)="#DEL!" sondern nur nach "DEL!".
Wie bekpmme ich das hin
Serge

AW: Auch ein netter Versuch...
28.09.2007 14:36:00
Renee
Serge ...
Was soll der Blödsinn...
Du behauptest dauernd irgendwelchen Schrott!
Der Vergleich von Kay mit der INSTRev wird WAHR, wenn der String #DEL! genau einmal in der Zelle vorkommt und er muss darin an erster Stelle beginnen.
Ich bin raus hier.... das wird mir echt zu blöd....
GreetZ Renee
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige