Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1464to1468
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

VBA Hilfe linke Taste aktiv

VBA Hilfe linke Taste aktiv
23.12.2015 10:59:29
Stefan
Guten Tag,
wir kämpfen gerade im VBA herum und kommen nicht weiter :-(
Wir wollen gerne, das in allesn Tabellenblätter den Bereich:
D9:I209 und im Bereich M9: T209 eine erleichterung haben.
Wenn ich mit der linke Maustase die Zeile markiere soll ich aktiv werden und wieder mit der linke Tase einfügen. So wie eine Art verschiebung ( Daten vom Aktiv soll nicht gelöscht werden) um immer wieder das zu ersparen ( links Maustase, kopieren, rechte Maustase, einfügen WERT123) Maustaste einfügen, aber nur mit WERT123.
Wäre das möglich?
Danke Stefan

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Hilfe linke Taste aktiv
23.12.2015 13:51:26
Sepp
Hallo Stefan,
ich gehe mal davon aus, dass nur jeweils innerhalb des Bereiches "verschoben" werden soll.
Folgender Code in das Modul "DieseArbeitsmappe", er wird aktiv, wenn 1 Zelle im Bereich ausgewählt wird!
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private varValues As Variant

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

On Error GoTo Errorhandler
If Target.Count > 1 Then Exit Sub

Application.EnableEvents = False

If Not Intersect(Target, Range("D9:I209")) Is Nothing Then
  If IsArray(varValues) Then
    If UBound(varValues, 2) = 6 Then
      Range(Cells(Target(1, 1).Row, 4), Cells(Target(1, 1).Row, 9)) = varValues
      varValues = ""
    End If
  Else
    If Application.CountA(Range(Cells(Target(1, 1).Row, 4), Cells(Target(1, 1).Row, 9))) > 0 Then
      varValues = Range(Cells(Target(1, 1).Row, 4), Cells(Target(1, 1).Row, 9))
    End If
  End If
ElseIf Not Intersect(Target, Range("M9:T209")) Is Nothing Then
  If IsArray(varValues) Then
    If UBound(varValues, 2) = 8 Then
      Range(Cells(Target(1, 1).Row, 13), Cells(Target(1, 1).Row, 20)) = varValues
      varValues = ""
    End If
  Else
    If Application.CountA(Range(Cells(Target(1, 1).Row, 13), Cells(Target(1, 1).Row, 20))) > 0 Then
      varValues = Range(Cells(Target(1, 1).Row, 13), Cells(Target(1, 1).Row, 20))
    End If
  End If
Else
  varValues = ""
End If

Errorhandler:
Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: VBA Hilfe linke Taste aktiv
24.12.2015 17:28:51
Stefan
Hallo Sepp,
leider geht der Code nicht. Passiert leider nichts. :-(
Danke erstmal
LG Stefan

AW: VBA Hilfe linke Taste aktiv
24.12.2015 17:34:27
Stefan
Hallo Sepp,
leider geht der Code nicht. Passiert leider nichts. :-
Ich möchte in der Spalte M bis Spalte T einen Mitarbeiter auswählen. und den möchte ich in meinem Bereich kopieren ( D9:I2019 )
Händisch würde es so aussehen:
ich gehe in die Spalte M 5 linke Taste kopieren und gehe in den Bereich M9 bis T209 drücke rechte Maustaste einfügen mit Wert123.
Gruß Stefan
LG Stefan

AW: anbei das Beispiel
24.12.2015 18:14:53
Sepp
Hallo Stefan,
erstens: Hast du das in deine ursprüngliche Frage nicht genau beschrieben.
Zweitens: Hat der bereich M-T 8 Spalten, D-I aber nur 6.
Drittens: Lies dir deinen Beitrag noch mal durch, das
"
Ich möchte in der Spalte M bis Spalte T einen Mitarbeiter auswählen. und den möchte ich in meinem Bereich kopieren ( D9:I2019 )
Händisch würde es so aussehen:
ich gehe in die Spalte M 5 linke Taste kopieren und gehe in den Bereich M9 bis T209 drücke rechte Maustaste einfügen mit Wert123."

ergibt nämlich nicht viel Sinn!
Gruß Sepp

Anzeige
AW: anbei das Beispiel
24.12.2015 18:32:39
ingo
Hallo Sepp,
Sorry für mein Fehler.
Würde es trotzdem gehen?
So wie ich es beschrieben habe (heute) und wie das Beispiel?
Danke und sorry nochmal

AW: anbei das Beispiel
24.12.2015 18:34:44
Sepp
Hallo Stefan oder Ingo oder wie?
Geht, aber beschreibe doch genau, was von wo und wohin eingefügt werden soll!
Gruß Sepp

AW: anbei das Beispiel
24.12.2015 18:42:38
Stefan
Also die MA in der Spalte M und Spalte Q in den Bereich D2 : I209.
Und so stell ich mir es vor.
Mitarbeiter M5 linke taste und in den Bereich mit der Linken taste über Wert123 einfügen damit das Dropdown Feld bleibt.
Danke
Stefan

Anzeige
AW: anbei das Beispiel
24.12.2015 18:56:34
Sepp
Hallo Stefan,
in das Modul "DieseArbeitsmappe".
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private varValues As Variant

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

On Error GoTo Errorhandler
If Target.Count > 1 Then Exit Sub

Application.EnableEvents = False

If Not Intersect(Target, Range("M3:M209, Q3:Q209")) Is Nothing Then
  If Target <> "" And Not Target Like "Gruppe*" Then
    varValues = Target.Value
  Else
    varValues = ""
  End If
ElseIf Not Intersect(Target, Range("D2:I209")) Is Nothing Then
  If varValues <> "" Then
    Target = varValues
    varValues = ""
  End If
End If

Errorhandler:
Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: anbei das Beispiel
24.12.2015 19:51:14
Stefan
Hallo Sepp,
genau so wollte ich es . einfach nur Klasse :-)
kurze Frage noch:
Ich möchte die Datei Speichern unter KW52 und diese Datei hat Die Tabellenblätter Montag , Dienstag, Mittwoch, Donnerstag, Freitag.
Jetzt wenn ich irgendwann mal eine neuen Tabellenblatt hinzufüge ( Zusammenfassung) will ich das der Code nur von Montag bis Freitag ( Tabellenblatt) funktioniert. Aber nicht in Zusammenfassung.
Kann ich den Code nicht unter diese Mappe sondern unter Montag Dienstag usw.... speichern ?
Danke dir für deine Hilfe
LG Stefan

AW: anbei das Beispiel
24.12.2015 22:11:48
Sepp
Hallo Stefan,
statt fünf mal den selben Code, besser so.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private varValues As Variant

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

On Error GoTo Errorhandler

Select Case Sh.Name
  Case "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag"
    If Target.Count > 1 Then Exit Sub
    
    Application.EnableEvents = False
    
    If Not Intersect(Target, Range("M3:M209, Q3:Q209")) Is Nothing Then
      If Target <> "" And Not Target Like "Gruppe*" Then
        varValues = Target.Value
      Else
        varValues = ""
      End If
    ElseIf Not Intersect(Target, Range("D2:I209")) Is Nothing Then
      If varValues <> "" Then
        Target = varValues
        varValues = ""
      End If
    End If
  Case Else
End Select
Errorhandler:
Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: anbei das Beispiel
24.12.2015 22:16:09
Stefan
Hallo Sepp,
bist echt ein Schatz :-)
DANKE DANKE DANKE :-)
LG Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige