HERBERS Excel-Forum - das Archiv
OT Add-In zum testen: Zellen Deselektieren
Josef

Hallo Forumsfreunde,
angeregt durch eine Thread von gestern und aus etwas Langeweile, hab ich
ein kleines Add-in erstellt, mit dem man Zellen De-Selektieren kann.
Wer will kann es mal testen. VBA-Projektschutz: PW = "x"
https://www.herber.de/bbs/user/66615.xla
Gruß Sepp

AW: OT Add-In zum testen: Zellen Deselektieren
Uduuh

Hallo Sepp,
ich hab ja ne Vermutung, was das soll, aber bei mir tut sich nichts.
Kleine Bedienungsanleitung?
Gruß aus’m Pott
Udo

Bedienungsanleitung
Josef

Hallo Udo,
na da gibt's nicht viel Anzuleiten.
Genau so, wie du bei gedückter Strg-Taste mehrere Zellen/Bereiche auswählen kannst,
kannst du, bei aktiver De-Select Funktion, Zellen/Bereiche wieder "entwählen".
Gruß Sepp

Jau
Uduuh

Hallo Sepp,
jetzt geht's.
Irgendwo hab ich diese Funktion mal auf einer Wunschliste für XL2010 gesehen.
Ist ja auch zu ärgerlich. 1x verklickt und schon kann man wieder von vorne anfangen.
Gruß aus’m Pott
Udo

Nützliche Sache! Kleine Zusatzinfo,...
Luc:-?

...Sepp (u. alle Interessenten):
Da ich an diesem PC kein MSO, aber dafür Gnumeric u. OO3.0 z.V. habe, habe ich das mal mit letzterem getestet. Scheint zu fkt! OO3.0 enthält wohl einen VBA-Adapter (da stand so etwas bei den OO-typischen „Vorschaltmakros“, der das bewirkt. Jedenfalls wdn VBA-Makros nicht mehr grdsätzlich auskommentiert.
(Leider haben sie da das Matrixkonstantenproblem noch nicht wirklich gelöst. Angeblich geht's, aber die Bspp fktn nicht!)
Gruß Luc :-?
AW: OT Add-In zum testen: Zellen Deselektieren
Jens

Hallo Sepp
Läuft bei mir Fehlerfrei.
Habe den Thread gestern mal kurz überflogen. Prima Idee.
Wird bestimmt ab und an mal Verwendung finden :-)
Gruß Jens
AW: nur noch Deselektieren ...
Erich

Hi Sepp,
, weil das jetzt mit deinem AddIn so schön geht, bringt einen aber doch auch nicht viel weiter,
zwischendurch muss man ja immer wieder "nachselektieren" - sonst ist Ende.
Funzt prima, hat nur einen Nachteil: Es gibt überhaupt nix zu meckern. ;-))
Grüße von Erich aus Kamp-Lintfort
Ergänzung
Erich

Hi Sepp,
eine (für mich) Besonderheit ist mir aufgefallen:
Wenn ich bei deaktiviertem De-Select in einem markiertenBereich herumklicke,
merkt Excel sich die angeklickten Zellen.
Wenn ich dann das De-Select aktiviere und eine weitere Zelle mit Strg anklicke,
werden diese eine und alle vorher angeklickten Zellen deselektiert.
Ich hab jetzt nicht nachgeforscht, woran da liegt...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Ergänzung
Josef

Hallo Erich,
das liegt daran, daß bei gedrückter Strg-Taste, Excel sich alle angeklickten Zellen "merkt", daß heißt
in "Target" speichert. Dabei werden mehrfach selektierte Zellen auch mehrfach aufgenommen.
Und genau darauf baut mein Add-In auf, es wird eben Target auf Zellen durchsucht, die mehrfach
in Target enthalten sind.
Gruß Sepp

Danke Sepp! Alles klar. (owT)
Erich

AW: Prima Ergänzung
dieter(drummer)

Hi Sepp,
es hat mich schon immer genervt, dass man nicht einzelne der markierten Zellen wieder zurücknehmen konnte ohne gleich alle markierten Zellen wieder komplett neu aktivieren zu müssen.
Es ist eine weitere Erleichterung in der Arbeit mit Excel.
Auch wenn ich nicht zu den Excelprofis zähle, finde ich das prima und werde es gerne nutzen. Habe es direkt eingebunden.
Gruß
Dieter(Drummer)
Fragen und Anregungen
Uduuh

Hallo,
warum machst du das?
strR = Target.Address(0, 0)
...
For Each rng In Range(strR)
warum nicht gleich so:
For Each rng in Target
Und warum hängst du hier die '# an?
strRange(lngI) = rng.Address & "#"
Ich hab's mal ohne # getestet, ging auch.
Nichtsdestotrotz: Die Idee ist saugut!
Ich konnte aber nicht an mich halten und habe das ein wenig modifiziert. Ist ca. 2,5x schneller. Merkt man aber nur bei mehr als 1000 Zellen. Vielleicht gibt's noch mehr Potenzial.
https://www.herber.de/bbs/user/66618.xla
Gruß aus’m Pott
Udo

AW: Fragen und Anregungen
Josef

Hallo Udo,
gut gemacht, das Add-in hab ich ja erst erstellt, da gibt' sicher noch Potenzial.
Zu deinen Fragen.
Bei meiner Methode mit "Filter" gab's Probleme, wenn ich das # nicht angehängt habe, weil Filter
scheinbar z.B. A1 auch in A11 findet und daher der Selectierte Bereich verschoben wurde.
Beim Dictionary ist das nicht der Fall, deshalb fällt das weg. Leider hat sich das Dictionary-Object
irgendwo in meinem Gehirn versteckt, deshal bin ich nicht darauf gekommen ;-((
Und zu deiner ersten Frage, das war noch ein Überbleibsel aus einem früheren Ansatz
den ich mitgeschleppt habe.
Gruß Sepp

AW: Fragen und Anregungen
Uduuh

Hallo Sepp,
somit ist das geklärt.
Potenzial: Es ist natürlich unsinnig, die Selection neu zu schreiben, wenn gar nicht deselectiert wurde, d.h. eine Zelladresse doppelt vorkommt.
Ergo:
      For Each rng In Target
If Not objRange.exists(rng.Address) Then
objRange.Add rng.Address, 1
Else
objRange(rng.Address) = 2
blnDeSelect = True
End If
Next
 If blnDeSelect Then
arrAddress = objRange.keys
arrCount = objRange.items
For lngI = 0 To UBound(arrAddress)
If arrCount(lngI) = 1 Then
If rngS Is Nothing Then
Set rngS = Range(arrAddress(lngI))
Else
Set rngS = Union(rngS, Range(arrAddress(lngI)))
End If
End If
Next
If Not rngS Is Nothing Then rngS.Select
End If
End If
End If
End If
ErrExit:
XLapp.EnableEvents = True
End Sub
Gruß aus’m Pott
Udo

neuer Ansatz
Uduuh

Hallo,
es gibt ja auch noch die Areas-Auflistung. Die letzte Markierung ist auch die letzte in der Auflistung.
Probleme gibt es noch, wenn komplette Spalten und komplette Zeilen markiert werden. Einzelne Zellen aus kompletten Zeilen/ Spalten zu entfernen, klappt auch nicht richtig.
Was gut geht: Zellen deselektieren, Spalten deselektieren.
Wer Lust hat, kann ja weiter arbeiten. Ich denke auch noch nach.
https://www.herber.de/bbs/user/66686.xla
Gruß aus’m Pott
Udo

P.S. dummerweise landet der Thread in den nächsten Tagen im Archiv