Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel Zellwert in einem bestimmten Bereich per Klick (Doppelklick) um 1 erhöhen

Frage Entwicklung VB for Applications

Mitglied: DrBulla

DrBulla (Level 1) - Jetzt verbinden

26.04.2012 um 17:07 Uhr, 16553 Aufrufe, 7 Kommentare

Hi Folks,

ich hab ne Excelmappe, da wird für die Kassenabrechnung unseres Vereins der Verzehr eingetragen.

-Datum - Name - Betrag - Cola - Wasser - Bier - Snickers - Stück Kreide - etc.

-14.04. - Peters - 10,00 - 10

Bei Cola wurde ne 10 eingetragen,

Ich würde gerne per VBA, dass bei Klick auf der Zelle sich der Wert erhöht um 1 ..
sprich beim nächsten Klick oder Doppelklick? dort ne 11 steht ..

Die Lösungen die ich dazu gefunden habe (leider kann ich selber nicht programmieren) sind leider nicht so gut gewesen, da passierten dann Dinge wie: Auch bei "Enter" wurde die aktive Zelle erhöht, egal wo. Oder, bei jedem Klick (also auch in Bereichen wo nix war oder bei Datum ...) wurden erschienen einsen ...

Vielleicht ist es günstiger oder sicherer per Doppelklick das zu verwirklichen - was dann aber stört, ich rufe den Bearbeitungsmodus auf, sprich der Cursor blinkt dann in der Zelle ... das soll eigentlich auch nicht ....


Mag mir einer helfen .. ich weiß doch, für'n echten Programmierer n 2 -Zeilen und n Kinderspiel obendrein ;)))

Danke ..

Marco
Mitglied: mak-xxl
26.04.2012 um 18:10 Uhr
Moin Marco,

im VBA-Editor für das entsprechende Tabellenblatt bitte das folgende Makro eintragen, dann passiert das Inkrementieren bei jedem Doppelklick:

01.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
02.
    If Target.Address = "$D$2" Then Target.Value = Target.Value + 1 
03.
    Target.Offset(1, 0).Select 
04.
End Sub
Die Angabe '$D$2' (Zelle 'D2') ist eventuell noch an die genaue Zelladresse anzupassen. Die Zeile 3 des Codes aktiviert nach dem Doppelklick die Zeile darunter, wenn andere Zeile/Spalte gewünscht - anpassen. Wenn die gleiche Zelle (also 'D2') aktiv bleiben soll, ersetzt Du die Zeile 3 des Codes durch

Cancel = True
Das Ganze für den Rechtsklick:

01.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 
02.
    If Target.Address = "$D$2" Then Target.Value = Target.Value + 1 
03.
    Cancel = True 
04.
End Sub
Rest wie oben. Wenn Doppel- und Rechtsklick den Colaverbrauch steigern sollen, dann einfach beide Makros stehen lassen.

BTW:
Zitat von DrBulla:
... unseres Vereins der Verzehr eingetragen.
-Datum - Name - Betrag - Cola - Wasser - Bier - Snickers - Stück Kreide - etc.

Macht geschmeidige Stimmen ...

Freundliche Grüße und Prost von der Insel - Mario
Bitte warten ..
Mitglied: DrBulla
26.04.2012 um 21:30 Uhr
Hi Mario.

Danke dir!!! Mir ist aufgefallen, dass ich die "Aufgabe" nicht präzise genug formuliert habe. Das ganze sollte natürlich für den Bereich gültig sein, indem die Zahlen erfasst werden. Also eher d2:h20 ... Ich bin gerade nicht am Rechner und kann es nicht ausprobieren, vermute aber, es nicht einfach mit dem absoluten D2 Bezug aus dem Code tauschen zu können...?


"n Stück Kreide"
Tja, was für ein Verein sind wir wohl
Kleiner Tipp: kein Chor

Ciao, Marco
Bitte warten ..
Mitglied: mak-xxl
26.04.2012 um 22:08 Uhr
Moin Marko,

kannst Du innerhalb des jeweils gewünschten Makros statt Zeile 2+3 so schreiben:

01.
    If Application.Intersect(Target, Range("D2:H20")) Is Nothing Then Exit Sub 
02.
    Target.Value = Target.Value + 1 
03.
    Cancel = True
Den Bereich auch wieder anpassen.

Freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: DrBulla
26.04.2012 um 23:08 Uhr
Dankeeee ..

auf welche Insel darf ich dann ein leckeres Getränk rüberschicken?

Das funktioniert hervorragend!

Danke!
Bitte warten ..
Mitglied: 76109
27.04.2012 um 10:32 Uhr
Hallo @All!

Für den Fall, dass es auch vorkommen kann, dass ein Mitglied wegfällt/hinzukommt oder sich das Angebot an Getränken und sonstigen Utensilien ändert, wäre es eventuell sinnvoll, wenn sich der Doppelklick-Bereich automatisch anpasst

Das wäre Anhand von Marios Codebeispiels z.B. so möglich:
01.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
02.
    Dim RangeArea As Range 
03.
     
04.
    With Range("A1").CurrentRegion 
05.
        Set RangeArea = Cells(2, 4).Resize(.Rows.Count - 1, .Columns.Count - 3) 
06.
    End With 
07.
     
08.
    If Not Application.Intersect(RangeArea, Target) Is Nothing Then 
09.
        Target = Target + 1:   Cancel = True 
10.
    End If 
11.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: Biber
27.04.2012 um 13:52 Uhr
[OT]
Zitat von 76109:
Für den Fall, dass es auch vorkommen kann, dass ein Mitglied wegfällt/hinzukommt....
Die Wahrscheinlichkeit des Nach-hinten-Wegfallens eines Mitglieds steigt natürlich proportional zum Verzehr von alkoholischen Getränken.

...wäre es eventuell sinnvoll, wenn sich der Doppelklick-Bereich automatisch anpasst
Insbesondere sollte sich die Spaltenbreite oder noch besser der Zoomfaktor des angezeigten Arbeitsblattes an der konsumierten Alk-Menge orientieren.

Merke: Mit fortschreitendem Getränke-Konsum nähert sich die Schriftart automatisch WingDings SansSerif an...

Grüße und schönes Wochenende
[/OT]
Bitte warten ..
Mitglied: 76109
27.04.2012 um 14:53 Uhr
[OT]
Hallo Biber!

Insbesondere sollte sich die Spaltenbreite oder noch besser der Zoomfaktor des angezeigten Arbeitsblattes
an der konsumierten Alk-Menge orientieren.
Das ich daran nicht gedacht habe

Wäre dann noch die Frage offen, ab welcher Alk-Menge der Zoomfaktor angepasst werden soll

Grüße Dieter und ebenfalls ein schönes Wochende
[/OT]
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...