Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1672to1676
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
Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 17:28:02
Bernd
Hallo,
Zuerst möchte ich mich bei allen, die mir bisher geholfen haben, aufrichtig bedanken. Da ich zum umsetzten der Vorschläge eurerseits aber länger brauche sind die Beiträge von mir meist schon im Archiv verschwunden.
Nun zu meinem Problem:
habe hier einen Fehler auf den ich nicht komme. Es handelt sich um Textfelder die
gelöscht werden sollen. Zu erst wird das Textfeld mittels darunterliegenden Zellen
markiert und dann mit dem folgenden Makro mittels einem Button vom Tabellenblatt aus
gelöscht.
Sub Textfelder_in_Markierung_löschen()
Dim objTextfeld As Shape
Dim rngBereich As Range
Set rngBereich = Selection
For Each objTextfeld In ActiveSheet.Shapes
If Not Intersect(objTextfeld.TopLeftCell, rngBereich) Is Nothing Then  _
objTextfeld.Delete
Next
Set rngBereich = Nothing
End Sub
Dies funktioniert mit verschiedenen "Makierungslängen" beim direkten aufrufen der
Sub auch ohne Fehler. Nun wird in einer anderen 

Sub das Tabellenblatt geleert. Ich
bekomme aber beim Aufruf mit dem folgenden Code einen nichtssagenden Laufzeitfehler
(1004) in der aufgerufenen Sub.
Range("l10:m102").Select
Call Textfelder_in_Markierung_löschen
Der fett markierte Bereich in der 

Sub Textfelder_in_Markierung_löschen() ist dann
gelb hinterlegt. Wenn ich bei der Call-Anweisung zum Schluss die Klammern () setze
werden die vom Editor gleich wieder weg genommen.
Warum wird mein Text zerissen?


		

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 17:29:57
Bernd
leider keine schöne Darstellung des Fehlers
If Not Intersect(objTextfeld.TopLeftCell, rngBereich) Is Nothing Then
wird in der Sub gelb hinterlegt
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 17:47:42
Mullit
Hallo,
sehr wahrscheinlich befindest Du Dich auf dem verkehrten Tabellenblatt und nicht auf dem aktiven, verzichte am besten komplett auf das Selektieren, wenn Du sowieso über Code auswählst:
Option Explicit
Sub Textfelder_in_Markierung_löschen(ByRef probjRange As Range)
Dim objTextfeld As Shape
For Each objTextfeld In ActiveSheet.Shapes
If Not Intersect(objTextfeld.TopLeftCell, probjRange) Is Nothing Then _
Call objTextfeld.Delete
Next
End Sub
Call Textfelder_in_Markierung_löschen(Tabelle1.Range("L10:M102"))

Gruß, Mullit
Anzeige
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 18:13:23
Bernd
Hallo Mullit,
ich bin auf dem richtigen Tabellenblatt. Es wird auch innerhalb des Codes nicht gewechselt.
Seltsamer weise ist nach dem Schließen des Fehlerfensters die Aktion durchgeführt und alle Textfelder weg.
Auf das Selektieren kann ich nicht verzichten, da der Benutzer in jedem Monat mehrere Textfelder anlegen kann. Mit diesem Löschen gebe ich ihm die Möglichkeit ein oder mehrere Textfelder auch wieder zu löschen.
Ich wollte die Sub dazu nutzen alle eventuell angelegte Textfelder zu löschen. Dazu wird halt werden alle 31 möglichen Tage selektiert und dann die Sub aufgerufen.
Anzeige
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 18:24:11
Mullit
Hallo,
okidoki, dann lad die Mappe hoch und man kann sich das ansehen...
Gruß, Mullit
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 19:00:27
onur
1) Wieso zip?
2) Datei ist kaputt!
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 19:13:15
Bernd
Original hat 1,6 MB :-(
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 19:14:38
onur
Probiere doch mal den Link selber aus.
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 19:15:07
Bernd
gerade Versucht. Datei lässt sich öffnen
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 19:25:16
onur
Userbild
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 19:32:47
Bernd
Die herunter geladene Datei auf 2 anderen Rechnern ohne Probleme geöffnet.
Wie kann ich die 1,6MB Datei noch einstellen?
Anzeige
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 19:36:47
onur
Dropbox - Da brauchst du nicht mal zippen.
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 19:49:48
Bernd
https://www.dropbox.com/s/bvbudt41gh3ty4d/Arbeitszeitliste%20blanko.xls?dl=0
gerade ein Dropboxkonto erstellt
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 19:59:12
Toni
nur zur Info: zip / xls ohne Probleme bei mir geladen, Onur, nicht dass Dir was eingefangen hast...
Grüße
Toni
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 20:01:54
onur
Glaube ich nicht - Ich habe Norton Security.
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 20:03:34
Toni
:) Danke für den Tipp - jedenfalls hab ich die Datei auf.
Grüße, so jetzt klink ich mich wieder aus
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 20:05:14
onur
Ich lasse trotzdem mal einen "vollständigen Scan" durchlaufen.
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 20:00:24
onur
"und dann mit dem folgenden Makro mittels einem Button vom Tabellenblatt aus gelöscht. "- Welches Button ist das?
Anzeige
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 20:20:03
Bernd

Sub Textfelder_in_Markierung_löschen()
ist das Makro welches vom Tabellenblatt aus von dem Benutzer gestartet werden kann.
Sub Tabelle_für_Blanco_leeren()
ist das Makro, aus dem das andere Makro gestartet wird
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 20:50:08
onur
Nur weil du die Variable "objTextfeld" nennst, heisst das nicht, dass nur Textfelder ausgewählt werden.
Dein Code löscht ALLE Shapes (Buttons,Dropdowns, Textfelder usw), ausser sie haben keine TopLeftCell-Eigenschaft, dann gibt es die besagte Fehlermeldung.
Sub Textfelder_in_Markierung_löschen()
Dim objTextfeld
Dim rngBereich As Range
Dim d, n, nam, t
Set rngBereich = Selection
For Each objTextfeld In ActiveSheet.Shapes
If objTextfeld.Type = msoTextBox Then
If Not Intersect(objTextfeld.TopLeftCell, rngBereich) Is Nothing Then objTextfeld. _
Delete
End If
Next
Set rngBereich = Nothing
End Sub

Anzeige
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 21:05:17
Bernd
Danke onur, es funktioniert.
So wie ich die Sache verstehe frägst du erst nach Textfeld ab und löscht es dann wenn es auch noch eine TopLeftCell-Eigenschaft (musste ich kopieren :-) ) hat. richtig?
Aber Dim d, n, nam, t benötige ich als Deklaration nicht? Sehe nicht, das es irgendwo verwendet wird.
AW: Sub funktioniert, bei externem Aufruf nicht mehr
11.02.2019 21:11:12
onur
"Each objTextfeld" enthält ALLE Shapes,
"If objTextfeld.Type = msoTextBox" prüft, ob Textbox,
"If Not Intersect(objTextfeld.TopLeftCell, rngBereich) Is Nothing" prüft, ob TopLeftCell im Selection-Bereich liegt, wenn ja - wird gelöscht.
"Aber Dim d, n, nam, t benötige ich als Deklaration nicht? Sehe nicht, das es irgendwo verwendet wird." - Das ist nur Testmüll, sorry, habe ich nicht gelöscht.
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige