Clever-Excel-Forum

Normale Version: Hilfe bei VBA Code
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Lukas,

hier mal alle Codes, die in der Beispielmappe enthalten sind:



' **************************************************************
'  Modul:  DieseArbeitsmappe  Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************


Option Explicit

Private Sub Workbook_Activate()
 If ActiveSheet.CodeName = "Tabelle1" Then
   Application.Run "Tabelle1.Worksheet_Activate"
 End If
End Sub

Private Sub Workbook_Deactivate()
 LeertasteAus
End Sub


' **************************************************************
'  Modul:  Tabelle1  Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************


Option Explicit

Private Sub Worksheet_Activate()
 If ActiveCell.Address = "$C$19" Then
   LeertasteEin
 Else
   LeertasteAus
 End If
End Sub

Private Sub Worksheet_Deactivate()
 LeertasteAus
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    'Haken
 With Target
   If .Address = "$C$19" Then
     .Font.Name = "Wingdings"
     If .Value = Chr(168) Then .Value = Chr(254) Else .Value = Chr(168)
     Cancel = True
   End If
 End With
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address = "$C$19" Then
   LeertasteEin
 Else
   LeertasteAus
 End If
End Sub


' **************************************************************
'  Modul:  Modul1  Typ = Allgemeines Modul
' **************************************************************


Option Explicit

Sub LeertasteEin()
 Application.OnKey Chr(32), "MakroBeiLeertaste"
End Sub

Sub LeertasteAus()
 Application.OnKey Chr(32)
End Sub

Sub MakroBeiLeertaste()
 With ActiveCell
   .Font.Name = "Wingdings"
   If .Value = Chr(168) Then
     .Value = Chr(254)
   Else
     .Value = Chr(168)
   End If
 End With
End Sub

Code eingefügt mit: Excel Code Jeanie

Wenn die Zelle C19 im Blatt OnKeyDemo, welches den Codenamen Tabelle1 hat, aktiv ist, kann mit der Leertaste der Haken gesetzt/entfernt werden.

Gruß Uwe
Hallo Uwe,

vielen Dank für deine Antwort! Ich war im Urlub und konnte deswegen nicht sofort auf deine Antwort reagieren.

Dein Code funktioniert in deiner Tabelle einwandfrei, genau so habe ich mir das Vorgetellt. Dafür schonmal besten Dank!!
Nur wenn ich den Code in meine Tabelle kopiere kommt ein Fehler, siehe Bild. Weiß du woran das liegen könnte?

Freue micht über Antworten!

Schönen Abend noch,
gruß Lukas
Hallo Lukas,

Zitat:Nur wenn ich den Code in meine Tabelle kopiere kommt ein Fehler, siehe Bild. Weiß du woran das liegen könnte?

ich habe nicht mitgelesen, drum mal ein Schuß in's Blaue, aber es ist ein Schuß mit sehr hoher Trefferwahrscheinlichkeit.
Gehe mal in dem/den Modul(en) gaaaanz nach oben, über das erste Makro hinaus.Es könnte sein, daß
dort eine Variable steht, die Du nicht mitkopiert hast.

Aufgrund Deiner Angaben, der Fehlermeldung usw. liegt der Hase hochwahrscheinlich dort im Pfeffer.
Hi,

(23.10.2017, 16:40)lukas-2000 schrieb: [ -> ]Nur wenn ich den Code in meine Tabelle kopiere kommt ein Fehler, siehe Bild. Weiß du woran das liegen könnte?

Bei der Fehlermeldung findet das Makro die Sub "LeertasteEin" z.B. nicht.
Hast Du die Makros dort hinkopiert, wo es dabei steht?

' **************************************************************
' Modul: DieseArbeitsmappe Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************
Sub Workbook_Activate()
Sub Workbook_Deactivate()

' **************************************************************
' Modul: Tabelle1 Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************
Sub Worksheet_Activate()
Sub Worksheet_Deactivate()
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Sub Worksheet_SelectionChange(ByVal Target As Range)

' **************************************************************
' Modul: Modul1 Typ = Allgemeines Modul
' **************************************************************
LeertasteEin()
LeertasteAus()
MakroBeiLeertaste()
Guten Abend,

danke für Eure Antworten!!

Tut mir leid, ich dussel habe vergessen die Module mit zu kopieren. :30: 

So funktioniert es wunderbar!! Ich hätte nurnoch eine letzte Frage, kann ich in den Code gleich einbauen, das ich mehrere Zellen ansprechen kann. Habe es mit einem Komma probiert, jedoch funktioniert es dann garnicht mehr.
Oder muss ich für jede Zelle einen eigenen Code einfügen?! Ich hoffe Ihr könnt mir weiterhelfen!

Freue mich über Antworten!

Mfg Lukas
Hallo Lukas,

(24.10.2017, 18:28)lukas-2000 schrieb: [ -> ]... kann ich in den Code gleich einbauen, das ich mehrere Zellen ansprechen kann.

z.B. so:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Application.Intersect(Target, Range("C2:C999")) Is Nothing Then
   LeertasteEin
 Else
   LeertasteAus
 End If
End Sub
Gruß Uwe
Hi Uwe,

vielen Dank für deine Antwort, mein vorhaben Funktioniert nun einwandfrei und somit kann ich diesen Tread als Erldeigt abschließen!!

Ich bedanke mich nochmals für die Unterstützung und wünsche allen noch einen schönen Tag!

Mfg Lukas
Seiten: 1 2