Microsoft Excel

Herbers Excel/VBA-Archiv

OT Add-In zum testen: Zellen Deselektieren | Herbers Excel-Forum


Betrifft: OT Add-In zum testen: Zellen Deselektieren von: Josef Ehrensberger
Geschrieben am: 15.12.2009 17:41:49

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

  

Betrifft: AW: OT Add-In zum testen: Zellen Deselektieren von: Uduuh
Geschrieben am: 15.12.2009 18:10:53

Hallo Sepp,
ich hab ja ne Vermutung, was das soll, aber bei mir tut sich nichts.
Kleine Bedienungsanleitung?

Gruß aus’m Pott
Udo



  

Betrifft: Bedienungsanleitung von: Josef Ehrensberger
Geschrieben am: 15.12.2009 18:14:09

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



  

Betrifft: Jau von: Uduuh
Geschrieben am: 15.12.2009 18:24:04

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



  

Betrifft: Nützliche Sache! Kleine Zusatzinfo,... von: Luc:-?
Geschrieben am: 15.12.2009 18:37:28

...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 :-?


  

Betrifft: AW: OT Add-In zum testen: Zellen Deselektieren von: Jens
Geschrieben am: 15.12.2009 18:16:47

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


  

Betrifft: AW: nur noch Deselektieren ... von: Erich G.
Geschrieben am: 15.12.2009 18:59:47

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


  

Betrifft: Ergänzung von: Erich G.
Geschrieben am: 15.12.2009 19:11:24

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


  

Betrifft: AW: Ergänzung von: Josef Ehrensberger
Geschrieben am: 15.12.2009 19:18:30

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



  

Betrifft: Danke Sepp! Alles klar. (owT) von: Erich G.
Geschrieben am: 15.12.2009 19:23:03




  

Betrifft: AW: Prima Ergänzung von: dieter(drummer)
Geschrieben am: 15.12.2009 19:57:19

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)


  

Betrifft: Fragen und Anregungen von: Uduuh
Geschrieben am: 15.12.2009 19:55:56

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



  

Betrifft: AW: Fragen und Anregungen von: Josef Ehrensberger
Geschrieben am: 15.12.2009 20:19:19

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



  

Betrifft: AW: Fragen und Anregungen von: Uduuh
Geschrieben am: 15.12.2009 20:27:52

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



  

Betrifft: neuer Ansatz von: Uduuh
Geschrieben am: 17.12.2009 22:50:55

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


Beiträge aus den Excel-Beispielen zum Thema "OT Add-In zum testen: Zellen Deselektieren"