Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
332to336
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
332to336
332to336
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellinhalt löschen bei best. Zeichenfolge in der Z

Zellinhalt löschen bei best. Zeichenfolge in der Z
04.11.2003 14:31:40
Norbert
Hallo Leute!

Kann mir bitte jemand bei einem Problem helfen?!

Ich habe eine Excel-Datei (z.B. mit dem Namen ABC.xls); in dieser befinden sich in einem Tabellenblatt ("Auswertung") eine große Anzahl von Daten (Text und Zahlen).
Die zu den relevanten Daten zugehörigen Spalten sind die Spalten D und K.
Ich möchte nun mit einem VBA-Script das gesamte Tabellenblatt (kein fixer Bereich!) nach den Zeichenfolgen "BA" und "CA" in der Spalte D durchsuchen. Wenn eine dieser Zeichenfolgen in Spalte D in einer Zelle steht, dann soll in der zugehörigen Zeile in der Spalte K der dortige Wert aus der zugehörigen Zelle gelöscht werden.
Endergebnis soll sein, dass in der Spalte D bei Texteinträgen "BA" und "CA" die zugehörigen Zellen der Zeile in Spalte K geleert sind.

Ich danke im Voraus!

Ciao, Norbert

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
04.11.2003 15:06:56
Guido P.
Hi Das ganze in einen Button legen oder sonst wo...
vorrausgesetzt Spalten D und K sind auf dem 'aktiven Blatt' ansonsten noch Tabelle1.activate durchführen...

dim i as integer

for i=1 to 65000 ' oder so ähnlich ' Zeile für Zeile <-> Ende noch nähger bestimmen
if cells(i, 4).value = "BA" or "CA" then ' 4 = D
cells(i, 11).value = "" ' 11 = K
endif
next i

Grüße
Guido P.
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
04.11.2003 16:07:37
Norbert
Hallo Guido,

danke für das Script; das Prinzip verstehe ich, aber es funktioniert leider nicht. Ich bekomme folgende Fehlermeldung:
Laufzeitfehler, Typen sind unverträglich.
Beim Debuggen geht er dann auf die Zeile:
If Cells(j, 4).Value = "BZ" Or "GE" Then
.........
Was kann hier falsch noch sein?
(Das Tabellenblatt ist aktiv!)

P.S.: Ich würde auch gerne keinen fixen Bereich angeben in der for-Schleife; da gibt es ja irgendetwas mit "UBound"!? Kennst du das?

Danke

Ciao, Andreas
Anzeige
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
04.11.2003 16:19:56
Guido P.
Hi,

kannst nur nach einem Wert vergleichen:

Take this:
Füge in das Blatt einen Button ein, und schreib Datenmüll (asdjnarjn) in die Spalte K und D (+zusätzlich in 3-4 Zellen in Spalte A den wert BA oder CA) Da wo BA oder CA steht wird parallel Zelle in Spalte K gelöscht!

Option Explicit


Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 1000 ' oder so ähnlich ' Zeile für Zeile <-> Ende noch nähger bestimmen
If Cells(i, 4).Value = "" Then
ElseIf Cells(i, 4).Value = "BA" Then
Cells(i, 11).Value = "" ' 11 = K
ElseIf Cells(i, 4).Value = "CA" Then
Cells(i, 11).Value = "" ' 11 = K
End If
Next i
End Sub

Anzeige
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
04.11.2003 16:33:21
Norbert
Hi,

jetzt bringt er zwar keine Fehlermeldung mehr, aber es tut sich auch nichts!
Ich bin momentan ein wenig ratlos was tun?

Ciao Guido

Norbert
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
04.11.2003 16:59:18
Guido P.
Hi,

das kann nicht ganz sein...
Hast du auch in Spalte D Werte eingetragen, unter anderem auch BA und CA???
Hast du auch in Spalte K Werte eingetragen??? (Dummy Werte, sodas man sehen kann wo eine Zelle gelöscht wurde..)

Also, trage wie ich folgende Werte ein:
---------------------------------------------------
Zeile | Spalte D | Spalte E | Spalte F | Spalte K |
---------------------------------------------------
1 | 2 |BA | | |sdfsdfsdf
3 |CA | | |asdasdkjsd
4 |sdfwerter | | |asdffqwerw
5 |BA | | |sdfsefdwe

Drückst du Button dann siehts so aus:

---------------------------------------------------
Zeile | Spalte A | Spalte B | Spalte C | Spalte D |
---------------------------------------------------
1 | 2 |BA | | |
3 |CA | | |
4 |sdfwerter | | |asdffqwerw
5 |BA | | |

So muss es gehen...

Grüße
Guido P.
Anzeige
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
04.11.2003 17:05:48
Norbert
Hi,

ich werde es versuchen und gebe Bescheid, wenn es klappt!!

Danke vorerst!!

Ciao, Norbert
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
04.11.2003 17:22:27
Norbert
Hi Norbert,

wenn ich ein neues Excel-Sheet mit Button und deinem Script
mache, dann funkt das super!!
In meinem kompletten Script leider noch nicht ganz, aber die
Fehlermeldung ist schon weg!!

Ich werde am Abend in Ruhe nochmals mein Script durchgehen,
vielleicht fällt mir was auf.

Danke dir auf jeden Fall!!!
Ich gebe Bescheid, ob es geklappt hat.

Ciao, Norbert
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
04.11.2003 17:26:54
Guido P.
Alles klar,

cool! Wir müssen die Syntax nur noch auf Deine 'Bedürfnisse' anpassen dann sollts gehen..

CYA later

Guido P.
Anzeige
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
05.11.2003 12:17:24
Norbert
Hi Guido,

also ich bin am Verzweifeln!!??
Wenn ich deinen Skript in einem neuen Worksheet laufen lasse, dann funktioniert das; aber da steht auch nur die for-Schleife zwischen der Buttonfunktion.
In meinem Komplettskript steht schon einiges drinnen; jeweils Aktionen die mit verschiedenen Buttons gestartet werden.
Das funkt auch, aber:
Ich habe einen Button, wo ich die Anzahl der belegten Zeilen im Sheet zähle:
k = 1
While IsEmpty(ActiveCell.Value) = False
ActiveCell.Offset(1, 0).Select
k = k + 1
Wend

Das funkt auch noch super!! Dann setze ich deine for-Schleife darunter, die ich von
1 bis k laufen lasse!
Das macht er jetzt aber nicht mehr!!!!!
Ich bin daher beim Debuggen auf Einzelschrittfunktion gegangen, und da sehe ich, dass er hier in der for-Schleife nie (!!) in deinen Bereich "ElseIf" kommt, wo ja gelöscht werden soll????!!!!
Wieso geht das hier nicht? Hast du da eine Ahnung Guido??
Meine Zellen in der Spalte D (4) sind ja alle belegt; rein von da her "verstehe" ich, dass das Skript nach dem ersten If in der for-Schleife gar nicht zum Löschen kommt.
Andererseits funkt es aber bei einem "neuen Sheet"!? Ich muss aber mit meinem, bereits langen Skript weiter arbeiten!
Letzte Frage:
Wieso kommt das Skript bei der Syntax
If Cells(j, 4).Value = "" Then

ElseIf Cells(j, 4).Value = "BA" Then
Cells(j, 11).Value=""

überhaupt zum Löschen? Kannst du mir bitte wörtlich beschreiben, was Excel hier macht?
(Wenn "Leer" dann ....., aber leer ist keine der Zellen????)
Ich danke dir im Voraus!

Ciao, Norbert
Anzeige
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
05.11.2003 12:53:17
Guido P.
Hi,

versteh ich nicht ganz, es wird ja schließlich nur gelöscht wenn eine übereinstimmung mit BA oder CA besteht, ansonsten wird er die Abfrage ohne was zu machen verlassen..

ElseIf Cells(j, 4).Value = "BA" Then
Cells(j, 11).Value=""

..heißt: j = 5; ist der Inhalt von D5 = "BA oder CA" ??? wenn ja dann lösche wenn nein dann mach weiter, ignorier, oder sonst was... in unserem Fall nichts!

Am besten Du packst das in eine Funktion und rufst diese auf...


Private Sub command1_click
call Leeren
End Sub


Private Fuction
for blabla
if blabla
endif
next blabla
End Function

Anzeige
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
05.11.2003 14:34:11
Norbert
Hi Guido,

jetzt habe ich genau lokalisiert, wo der Fehler geschieht!
Wenn ich Daten und Button auf ein und demselben Tabellenblatt in einer Excel-Datei stehen
habe, dann funkt dein Skript.
Wenn ich aber auf einem Tabellenblatt den Button habe und auf einem anderen Tabellenblatt (in der selben Excel-Datei natürlich) die Daten, dann funkt es nicht mehr; und zwar genau die if-Abfrage in der for-Schleife!!
Ich habe auch mit Worksheet("Auswertung").Activate gearbeitet, hilft aber auch nicht!!
Komisch ist nur, dass das bei meinen anderen Buttons funktioniert!!!
(Alle Buttons auf einem Tabellenblatt; Auswertung findet auf dem 2. Tabellenblatt "Auswertung" statt!)

Ich weiß jetzt nicht mehr weiter, will dich aber auch nicht aufhalten.
Vielleicht weißt du trotzdem dazu etwas?! Das mit der Funktion führt auch nicht weiter; die Prozedur kommt genausoweit voran und hört vor dem Löschen auf.

Ciao, Norbert
Anzeige
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
05.11.2003 15:37:25
Guido P.
Hi,

vorab,

zieh dir mal folgendes EBook:
https://www.herber.de/forum/archiv/328to332/t329293.htm
der Link zum Buch ist in diesem Thread vorhanden (Betreff: Link zum EBook o.s.ä.)
und kuck dir das Kapitel über Gültigkeit von Variablen an... (ist zwar VB aber prinzipiell das gleiche..)

Wenn du über mehrere Tabellenblätter arbeitest..
musst du immer genau angeben welche Zelle auf welchem Blatt gemeint ist..

Tabelle1.cells(j,4) usw...
Tabelle2.cells(j,4) wenn du diese Richtig ansprichst müsste es funktionieren..

Und lass das auch wegen Übersichtlichkeit in eine Funktion stehen.. sieht besser aus..

CYA
Guido P.
Anzeige
AW: Zellinhalt löschen bei best. Zeichenfolge in der Z
05.11.2003 16:09:11
Norbert
Danke!!!!
Das mit der Funktion finde ich auch super und ist übersichtlicher!
Ich danke dir für diesen Tipp und deine Hilfe. Ich habe nochmals eine
neue Beschreibung meines Problems ins Forum gestellt, gerade als du mir
zurückgeschrieben hast!? ;-)
Ich werde auf die Seite laut deinem Tipp gehen und mal sehen.
Danke vorerst Guido! ;-)

Ciao, Norbert
Es funkt!!!!!!
05.11.2003 16:15:20
Norbert
Hi Guido!

Es funkt!!!!!
Es war die Sache mit

"Wenn du über mehrere Tabellenblätter arbeitest..
musst du immer genau angeben welche Zelle auf welchem Blatt gemeint ist.."

Ich danke dir recht schön!!! ;-))))

Schönen Abend noch
Ciao, Norbert
Anzeige
AW: thx 4ya Feedback...
06.11.2003 09:54:50
Guido Palacios
Danke fürs Feedback...
Gibst mir die Motivation in diesem Beruf weiterzumachen... (*g;-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige