Anzeige
Archiv - Navigation
1540to1544
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

End Pub wurde erwartet

End Pub wurde erwartet
12.02.2017 11:06:28
Hlavac
Hallo, mit dem Aufruf "Call Kopieren()" erhalte ich den Kompilierungsfehler "End Sub wurde erwartet"
Sub Kopieren()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
ActiveSheet.Range("A1:B1").Copy ActiveSheet.Range("G11")
End If
End Sub

End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: End Pub wurde erwartet
12.02.2017 11:10:45
mumpel
Hallo!
Du hast "End Sub" zweimal drin!? Darf aber nur einmal je Prozedur vorhanden sein.
Gruß, René
AW: End Pub wurde erwartet
12.02.2017 11:11:55
Hajo_Zi
der eingerahmte Code ist korrekt.
Dein Name "End Sub" gehört ja nicht zum Code.
Ich hätte die Reaktion auf die Eingabe abgeschaltet.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
Application.EnableEvents = False
ActiveSheet.Range("A1:B1").Copy ActiveSheet.Range("G11")
Application.EnableEvents = True
End If
End Sub

Anzeige
AW: End Sub wurde erwartet
12.02.2017 11:16:02
Matthias
Hallo
SelectionChange ist eine Ereignisprozedur und gehört ins Tabellenmodul des Registerblattes
Sub Kopieren() gehört in ein allgemeines Modul.
Ein allgemeines Modul kennt kein Target.
Wieso Du die Ereignisprozedur innerhalb der Sub Kopieren() platzierst
kann ich nicht nachvollziehen.
Gruß Matthias
AW: I walk to the pub
12.02.2017 11:16:46
Gerd
Hallo, du kannst die beiden Prozeduren so nicht verschachteln. Da bist auf einem falschen Weg.
Das Eingerahmte ist eine sog. Integrierte Ereignisprozedur, die in ein Tabellenblattmodul gehört u.
automatisch startet, wenn hier die Zelle(n) A1:B1 ausgewählt werden.
Soll davon unabhängig kopiert werden, würde das Makro ungefähr so aussehen:
Sub Kopieren()
ActiveSheet.Range("A1:B1").Copy ActiveSheet.Range("G11")
End Sub

Anzeige
AW: I walk to the pub
12.02.2017 13:26:24
Hlavac
Ich habe alle mögliche probiert. Ich soll im Makro"Programm" Name und Datum eingeben, danach soll der Inhalt A1:B1 in G11 kopiert werden
Ich verstehe diese diese Verschachteln nicht.
Hier mein Makro "Programm"Sub Programm()
'
Dim sTxt As String
sTxt = InputBox("Bitte Anlass-Name eingeben:")
If sTxt = "" Then Exit Sub
'MsgBox sTxt
Range("H5").Value = sTxt
Datum:
' Sub SetPrompt()
Dim dTxt As String, sPrompt As String
sPrompt = "Nutzen Sie bitte folgende Syntax:" & vbLf & _
" 'dd.mm.yyyy' oder" & vbLf & _
" 'dd/mm/yyyy' oder" & vbLf & _
" 'dd-mm-yyyy':"
dTxt = InputBox(prompt:=sPrompt)
On Error GoTo ERRORHANDLER
'MsgBox CDate(dTxt)
Range("J5").Value = dTxt
Call Kopieren
Exit Sub
ERRORHANDLER:
MsgBox "Kein gültiges Datumsformat!"
'GoTo DatumTarget.Address(False, False
End Sub
Sub Kopieren()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
Application.EnableEvents = False
'ActiveSheet.Range("A1:B1").Copy ActiveSheet.Range("G11")
Application.EnableEvents = True
End If
End Sub

Sub Kopieren2()
ActiveSheet.Range("A1:B1").Copy ActiveSheet.Range("G11")
End Sub
Anzeige
Dann solltest du, statt eines Pubs, eher mal ...
12.02.2017 13:52:01
Luc:-?
…die VBEditor-Hilfe, in der eindeutig zu lesen ist, dass man Prozeduren nicht (komplett) ineinander schachteln darf (das macht man mit Aufrufen, idR Call), besuchen, Hlavac,
denn dir wurde es ja nun schon erklärt, aber du zeigst immer noch das Falsche! Außerdem könntest du mal dein ganzes Pgm mit HTML-(Code-)Tags (hier <pre>) versehen und das nicht der Forumssoftware überlassen, damit eindeutig zu sehen ist, was du da machst. Selbst die Forumssoftware ist verwirrt und versteht dein Konstrukt nicht, weshalb sie nur die integrierte Ereignis­Prozedur (eingerahmt) als Pgm darstellt. Schon das sollte dir zu denken geben… :->
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Dann solltest du, statt eines Pubs, eher mal ...
12.02.2017 17:14:31
Hlavac
Danke für Deine Antwort. Ich habe gedacht es kann mir jemand mein Via-Code anpassen anstatt mich zu belehren. Dieses Problem sind die letzen 20% von meinem Projekt die noch nicht laufen. Leider bin nicht mehr so fit (72-Jahre alt) und es fehlt mir manchmal schwer triviale Sachen zu begreifen. Trotzdem vielen Dank für eure Hilfe.
Alter ist kein Entschuldigungsgrund, höchstens ...
12.02.2017 19:08:02
Luc:-?
…Demenz, Hlavac,
denn HWH ist auch schon so alt und etliche AWer hier sind auch schon Ü60 bis Ü70! Aber Gerd zeigte ja nun Einsehen… ;-]
Luc :-?
AW: Rude Bravo
12.02.2017 14:18:53
Gerd

Sub Programm()
Dim sTxt As String, dTxt As String, sPrompt As String
sTxt = InputBox("Bitte Anlass-Name eingeben:")
If sTxt = "" Then Exit Sub
Range("H5").Value = sTxt
sPrompt = "Nutzen Sie bitte folgende Syntax:" & vbLf & _
" 'dd.mm.yyyy' oder" & vbLf & _
" 'dd/mm/yyyy' oder" & vbLf & _
" 'dd-mm-yyyy':"
dTxt = InputBox(prompt:=sPrompt)
On Error GoTo ERRORHANDLER
Range("J5").Value = dTxt
Call Kopieren2
Exit Sub
ERRORHANDLER:
MsgBox "Kein gültiges Datumsformat!"
End Sub
Sub Kopieren2()
ActiveSheet.Range("A1:B1").Copy ActiveSheet.Range("G11")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
Application.EnableEvents = False
Range("A1:B1").Copy Range("G11")
Application.EnableEvents = True
End If
End Sub

Anzeige
AW: Rude Bravo
12.02.2017 22:42:20
Hlavac
Hallo Gerd, was muss ich hier machen? Nach der Datumseingabe warte ich auf den Klick (Sub Kopieren() ) und danach (sub Kopieren2)
ausführen zu können. Leider funktioniert dieser Klick nicht.Vielleicht hasst Du noch ein wenig Geduld mit mir.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige