Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1936to1940
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
Inhaltsverzeichnis

Zeileninhalt leeren

Zeileninhalt leeren
24.07.2023 16:10:52
bbs2
Hallo,

ich möchte in eine Zeile einen Button platzieren, mit dem der Inhalt der Zeile gelleert werden kann
Das Makro hinter dem Button soll dabei die Zeile benutzen, in welcher der Button platziert ist.
Das folgende Makro funktioniert hierbei nur für den Zeilenbereich der Zeile 5: A5:K5

Wie kann der code angepasst werden, dass die Zeilennummer 5 hier ersetzt wird durch einen code, der
automatisch die Zeilennummer benutzt, in dem sich der Button befindet. So könnte ich in jede Zeile den Button setzen ohne ein
angepasstes Makro zu hinterlegen.

Sub wegmit()
oBereich = Thiscomponent.Sheets("Tabelle1").getCellRangeByName("A5:K5")
oZellen=oBereich.queryContentCells(7).Cells.createEnumeration()
do while oZellen.hasmoreelements
oZelle=oZellen.nextelement
if ozelle.cellprotection.islocked=false then
ozelle.clearcontents(7)
end if
loop
End Sub


Gruß
Heinz

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeileninhalt leeren
24.07.2023 17:01:03
bbs2
Es handelt sich um ein Steuerelement.
Im code meiner Ausgangsfrage hat sich wohl durch Änderungen ein Fehler eingeschlichen.

Allgemein, also unabhängig vom vorgeschöagenen Code:
Hat jemand einen code, mit dem alle markierten Zeilen (z.B. mit einem x) geleert werden können.
Also

1. zeilen wählen mit einer Markierung
2. Steuerelement mit der Maus anklicken
3. Markierten Zeilen werden geleert (nicht gelöscht).

Danke
Gruß
Heinz
AW: Zeileninhalt leeren
24.07.2023 17:28:04
onur
Von "mit X markierte Zeilen" war eben noch nicht die Rede.
SO kannst du die Zeile leeren, in der das Button (ActiveX) sich befindet:
CommandButton1.TopLeftCell.EntireRow.ClearContents
Anzeige
AW: Zeileninhalt leeren
24.07.2023 17:15:38
daniel
Hi
in EXCEL-VBA kannst du alle Zellen, die in einer Spalte mit einem "x" gekennzeichnet sind, so leeren.
allerdings ist es so, dass die Zellen, die nicht geleert werden sollen, leer sein müssen und in den Zellen, deren Zeilen gelöscht werden soll, ein beliebiger Text stehen kann:

die Spalte, in welcher die "x" stehen, sei Spalte A (1).
Columns(1).SpecialCells(xlcelltypeconstants, 2).EntireRow.ClearContents

bzw mit Absicherung zur Fehlervermeidung falls nichts ausgewählt ist:
If Worksheetfunction.CountIf(Columns(1), "?*") then Columns(1).SpecialCells(xlcelltypeconstants, 2).EntireRow.ClearContents


dies für den Fall, dass die "x" vom Anwender von Hand gesetzt werden.

Gruß Daniel
Anzeige
AW: Zeileninhalt leeren
24.07.2023 20:47:46
bbs2
Hallo Daniel,

Danke für den Code.

Leider bekomme ich auf das Makro

Sub Makro1()
If Worksheetfunction.CountIfS(M4:M41,"*?") then Columns(1).SpecialCells(xlcelltypeconstants, 2).EntireRow.ClearContents
End Sub

die Fehlermeldung

BASIC-Syntaxfehler.
Erwartet: Then.

Gruß
Heinz
AW: Zeileninhalt leeren
24.07.2023 20:56:58
daniel
HI
dann muss ich nochmal Fragen:
- Verwendest du Excel oder ein anderes Tabellenkalkulationsprogramm?

ansonsten gibt man in VBA einen Zellbereich entweder so an: [M4:M41] oder so: Range("M4:M41")

die nächste Frage wäre dann, warum du das Columns(1) für das IF-Then geändert hast, aber nicht mehr hinterher für das SpecialCells?
es sollte doch klar sein, dass man an beiden Stellen auf den selben Zellbereich verweisen muss, denn mit dem CountIfs prüft man ja, ob im Zellbereich überhaupt eine Zelle einen Text hat oder ob alle Zellen leer sind. Es macht keinen Sinn, hier eine andere Stelle zu prüfen.
Denkt man beim Programmieren nicht mehr mit?
Gruß Daniel
Anzeige
AW: Zeileninhalt leeren
25.07.2023 11:07:08
bbs2
Hallo,

ich benutze libreOffice, neueste Version.

Die Makroausführung
Sub Makro1()
If Worksheetfunction.CountIf(Columns(1), "?*") then Columns(1).SpecialCells(xlcelltypeconstants, 2).EntireRow.ClearContents
End Sub

wird mit folgendem Fehler quitiert:

BASIC-Laufzeitfehler.
Prozedur Sub oder Function nicht definiert.

wobei hierbei folgender Text unterlegt wird:
If Worksheetfunction.CountIf(Columns(1), "?*") then

Danke für die Hilfestellungen

Heinz

LibreOffice - hier nicht
25.07.2023 11:17:54
daniel
Wie der Name schon sagt: Das hier ist ein EXCEL und VBA-Forum.
Dh du wirst hier kaum jemand finden, der sich mit was anderem auskennt.
Für Fragen zur Programmierung von LibreOffice solltest du dir ein Forum suchen, das darauf spezialisiert ist.
Bei der Programmiersprache sind die Unterschiede zwischen den einzelnen Herstellern erheblich, so dass du nicht einfach Excel-VBA nach LibreOffice portieren kannst.
Hier solltest du nur fragen, wenn du so gut bist, dass du die Lösungen die in Excel-VBA geschrieben sind verstehst und dann für LibreOffice umschreiben kannst.
Gruß Daniel
Anzeige
AW: LibreOffice - hier nicht
25.07.2023 11:52:49
bbs2
Hallo Daniel,

ich habe Verständnis für Deine Forumseinschränkung.
Grundsätzlich benutze ich eigentlich nur Excel 2019.
Ausnahmsweise erstelle ich eine Tabelle für einen Freund, der MSOffice nicht kaufen möchte und deshalb libre Office benutzt.

Nun habe ich folgenden code, der einwandfrei alle Zeilen in einem Bereich leert. Jedoch möchte ich die Beschränkung auf Zeilen,
die in der 13. Spalte (M4:M41) ein "X" haben. Kann dies in folgenden code eingebaut werden:

Sub wegdamit
oBereich = Thiscomponent.Sheets("Allianz 1").getCellRangeByName("B4:M41")
oZellen=oBereich.queryContentCells(7).Cells.createEnumeration()
do while oZellen.hasmoreelements
oZelle=oZellen.nextelement
if ozelle.cellprotection.islocked=false then
ozelle.clearcontents(7)
end if
loop
End Sub

Danke
Heinz
Anzeige
AW: Zeileninhalt leeren
24.07.2023 16:24:34
Rudi Maintaire
Hallo,
was ist das für ein merkwürdiger Code?
Das folgende Makro funktioniert hierbei nur für den Zeilenbereich der Zeile 5: A5:K5
Bei mir gar nicht.
Thiscomponent ???
getCellRangeByName ???
hasmoreelements ???

etc.

Und in jede Zeile einen Button zu setzen halte ich für mehr als grenzwertig.

Gruß
Rudi
AW: Zeileninhalt leeren
24.07.2023 16:22:09
onur
WAS für ein Button? ActiveX oder Formularsteuerelement ?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige