Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1108to1112
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

Zelle markieren funktioniert nicht

Zelle markieren funktioniert nicht
Björn
Hallo zusammen.
Der Montag geht gleich gut los... nicht mal die einfachsten Dinge bekomme ich hin.
Folgendes Problem:
Aus unserem System übergebe ich Daten in ein Excel-Formular (von Kunden). Dort gibt es einen Button, der die leeren Zeilen aus dem Formular löscht, zu löschende Zeilen müssen vorher markiert werden.
Nun gelingt es mir, die Daten ins Formular zu schreiben und auch den Knopf zu drücken.
Es glingt mir aber nicht, die Zellen zu markieren. Weder .Select noch .Activate funktionieren.
Es kommt nicht mal ein Fehler, es wird einfach ignoriert. Ich verstehe das nicht.
Gibt es noch andere Wege, wie man Zellen markieren kann oder hat sonst einer eine Idee?
Schon mal vielen Dank.
Gruß
Björn B.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zelle markieren funktioniert nicht
19.10.2009 09:42:42
Hajo_Zi
Hallo Björn,
es sehen nur wenige Deinen Code. Du willst löschen.
Hinweise zu select usw.

AW: Zelle markieren funktioniert nicht
19.10.2009 09:56:10
Björn
Na danke, das sind immer die freundlichen Antworten...
Also noch mal.
Ich bin kein Anfänger, ich weiß, das .Select und .Activate meistens unnötig sind und viele Nachteile haben, und es fast immer eine elegantere, bessere Lösung gibt.
Wie schon beschrieben handelt es sich um ein Kundenformular mit X Leerzeilen (Blatt und Makros sind natürlich vom Kunden mit Passwortschutz versehen).
Die einzige Möglichkeit für mich Zeilen zu löschen ist über den vom Kunden eingebauten Button, der die markierten Zeilen löscht. Somit komme ich nicht drum herum, dass ich vor dem Drücken dieses Buttons die entsprechen Zeilen markiere.
Mein Code, den Du sehen möchtest:
zur Erklärung:
Zeile = Variable für die letzte von mir befüllte Zeile
letzte = Variable für die letzte Zeile des Formulars --> gelöscht werden soll also von (Zeile + 1) bis letzte.

Set wb = Workbooks(datei)   'Wird vom aufrufenden Programm übergeben
Set ws = wb.Worksheets(blatt)  'Wird vom aufrufenden Programm übergeben
ws.Activate
letzte = Names("bottom" & blatt).RefersToRange.Row - 1 'letzte Zeile auf Blatt finden
zeile = zeile + 1  'Wird vom aufrufenden Programm übergeben
ws.Rows(zeile & ":" & letzte).Activate 

oder auch
ws.Rows(zeile & ":" & letzte).Select

Wie schon beschrieben, das funktiert nicht, wird einfach ignoriert.
Hat jemand eine Idee?
Gruß
Björn B.
Anzeige
AW: Zelle markieren funktioniert nicht
19.10.2009 09:59:55
Hajo_Zi
Hallo Björn,
wenn ich mich richtig Erinnere ging es im ersten Beitrag um Leerzellen, jetzt Leerzeilen.
Die kann man ohne markieren löschen.
Sub Leerzeilen_loeschen()
'   alle Leerzeilen löschen
Dim LoI As Long
Dim RaZeile As Range
Application.ScreenUpdating = False
For LoI = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
If Application.WorksheetFunction.CountA(Rows(LoI))  ActiveSheet.UsedRange. _
SpecialCells(xlCellTypeLastCell).Column Then
If Rows(LoI).SpecialCells(xlCellTypeBlanks).Count = ActiveSheet.UsedRange. _
SpecialCells(xlCellTypeLastCell).Column Then
If RaZeile Is Nothing Then
Set RaZeile = Rows(LoI)
Else
Set RaZeile = Union(RaZeile, Rows(LoI))
End If
End If
End If
Next LoI
If Not RaZeile Is Nothing Then RaZeile.Delete
Application.ScreenUpdating = True
Set RaZeile = Nothing
End Sub

Gruß Hajo
Anzeige
AW: Zelle markieren funktioniert nicht
19.10.2009 10:04:41
Björn
Hallo Hajo,
lies doch bitte genau, bevor du immer so schnell antwortest.
Ich weiß, wie man Zeilen löscht, das kann ich hier aber nicht so machen. Habe ich schon beschrieben.
Es gibt nur diese 1 Lösung:
Ich muss ZELLEN oder ZEILEN markieren, bevor ich den Knopf drücke.
Ich kann die Zeilen nicht manuell löschen, da es sich um ein Kundenformular handelt, das mit Passwortschutz versehen ist.
Gruß
Björn
Klärungsversuch
19.10.2009 10:57:02
Erich
Hi Björn,
vielleicht lässt sich das Problem ja doch eingrenzen oder lösen.
1. Kannst du in der Tabelle Bereiche per Hand/Maus markieren?
2. Gibt es vielleicht ein SelectionChange-Makro zu der Tabelle?
3. Probier mal

Sub a()
aTst "Mappe1", "Tabelle1", 3
End Sub
Sub aTst(datei As String, blatt As String, zeile As Long)
Dim wb As Workbook, ws As Worksheet, letzte As Long
Set wb = Workbooks(datei)   'Wird vom aufrufenden Programm übergeben
Set ws = wb.Worksheets(blatt)  'Wird vom aufrufenden Programm übergeben
wb.Activate
ws.Activate
letzte = Names("bottom" & blatt).RefersToRange.Row - 1 'letzte Zeile auf Blatt finden
zeile = zeile + 1  'Wird vom aufrufenden Programm übergeben
MsgBox "vorher markiert: " & Selection.Address(0, 0)
MsgBox "Ziel: Zeilen " & zeile & ":" & letzte
'Stop
ws.Rows(zeile & ":" & letzte).Select
MsgBox "nachher markiert: " & Selection.Address(0, 0)
End Sub
Was wird ausgegeben?
4. Teste den Code noch einmal, lösche aber vorher das Hochkomma vor "Stop".
Das Makro bleibt stehen, du kannst dann mit F8 schrittweise weitergehen und sehen, was passiert.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Problem behoben. Danke.
19.10.2009 11:13:04
Björn
Hallo Erich,
klar, von Hand kann ich markieren, sonst würde der Button zum Zeilen löschen ja keinen Sinn machen.
Eigentlich ist das Formular so gedacht, dass man die Daten eben von Hand eingibt.
Da wir aber viele solcher Formulare ausfüllen müssen, habe ich das automatisiert.
Hab das Problem mittlerweile gefunden, glaube ich.
Zwar noch nicht verstanden, aber es funktioniert jetzt.
Vielen Dank Euch.
Gruß
Björn

66 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige