Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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

pruefen ob Prozedurname vorhanden ist

pruefen ob Prozedurname vorhanden ist
12.01.2009 16:35:03
dirk
Hallo Forumsmitglieder,
ich habe mal wieder ein kleines Problem und benoetige Eure Hilfe:
Ich schreibe per VBA Prozeduren in ein VBA Projekt und moechte vor dem Schreiben einer neuen Prozedur pruefen, ob dieser Prozedurname im Projekt schon vorhanden ist.
Ich schreibe die Proceduren in das codemodule in Tabelle1.
Bin euch fuer jede Hilfe dankbar!
Dirk aus Dubai (z.Z. in Saudi Arabia)

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

Betreff
Datum
Anwender
Anzeige
AW: pruefen ob Prozedurname vorhanden ist
12.01.2009 16:51:13
Jan
Hi,
der Editor hat eine Suchfunktion, ganzes Projekt anhaken und nach ganzem Begriff suchen.
mfg Jan
AW: pruefen ob Prozedurname vorhanden ist
12.01.2009 16:57:00
dirk
Hallo!
Sorry, hab mich nicht genau genug ausgedrueckt:
Ich moechte das in meinem Code pruefen, bevor ich den neuen Code schreibe, damit der nameconvention Fehler nicht auftritt, falls ein Macroname mehrmals existiert.
Ich braeuchte da eine Funktion oder check-Kommando.
Danke im Voraus
Dirk aus Dubai
AW: pruefen ob Prozedurname vorhanden ist
12.01.2009 17:12:00
Hajo_Zi
Halolo drk,
fange an die ersten Buchstaben von Deiner neuen Orozedur zu schreiben und nach ca. 3 Buchstaben strg+Leerstelle und er zeigt Dir welche er schon hat die mit diesen Buchstaben beginnen.

Anzeige
AW: pruefen ob Prozedurname vorhanden ist
12.01.2009 17:27:50
dirk
Hallo nochmal,
hier zur Verdeutlichung mal etwas code:
Private sub
If i = 10 Then
'here comes some code to make the last checkbox react on clicking
LastButton = Selection.Name
'Put Code for the Button
'dimension the variables to add macro code in code module
'Open WBpath & "\" & "Trackreport.txt" For Append As 1
'Print #1, "Try to write macro code for button 10"
'Close 1
'Application.ScreenUpdating = False
'find last row in existing code
'cLines = ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule.CountOfLines + 1
With Workbooks(WBname).VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
.InsertLines cLines + 1, "

Private Sub " & LastButton & "_Click()"
.InsertLines cLines + 2, "If bActive = True then Exit Sub"
.InsertLines cLines + 3, "LCell = ActiveSheet.OLEObjects(" & """" & LastButton & """" & _
").LinkedCell"
.InsertLines cLines + 4, "Range(LCell).Select"
.InsertLines cLines + 5, "Activecell.Offset(0, -14).Select"
.InsertLines cLines + 6, "If ActiveCell.Value = " & """" & "Other reason (Please  _
specify here)" & """" & "Then"
.InsertLines cLines + 7, "If Range(LCell).Value = " & """" & "True" & """" & " Then"
.InsertLines cLines + 8, "again:"
.InsertLines cLines + 9, "   OReason = InputBox(" & """Please describe the other  _
reason(s) for non compliance.""" & "," & """Non-compliance reasons""" & "," _
& """Other reason (Please specify here)""" & ")"
.InsertLines cLines + 10, "   If OReason = """" Then"
.InsertLines cLines + 11, "again2:"
.InsertLines cLines + 12, "tmpstr = MsgBox(" & """No valid entry. Try again?""" & ", _
vbRetryCancel)"
.InsertLines cLines + 13, "if not tmpstr = 4 then"
.InsertLines cLines + 14, "'Cancel had been selected by user'"
.InsertLines cLines + 15, "    bActive = True"
.InsertLines cLines + 16, "    Range(lcell).Value = " & """" & "False" & """"
.InsertLines cLines + 17, "    OReason = " & """" & "Please describe the other reason( _
s) for non compliance." & """"
.InsertLines cLines + 18, "    bActive = False"
.InsertLines cLines + 19, "    Exit Sub"
.InsertLines cLines + 20, "   Else"
.InsertLines cLines + 21, "    goto again"
.InsertLines cLines + 22, "   end if"
.InsertLines cLines + 23, "  End If"
.InsertLines cLines + 24, "  If Oreason = " & """" & "Other reason (Please specify here)"  _
& """" & " then"
.InsertLines cLines + 25, "   goto again2:"
.InsertLines cLines + 26, "  end if"
.InsertLines cLines + 27, "  ActiveCell.Value = OReason"
.InsertLines cLines + 28, "End If"
.InsertLines cLines + 29, " Else"
.InsertLines cLines + 30, "  ActiveCell.Value = " & """" & "Other reason (Please specify  _
here)" & """"
.InsertLines cLines + 31, "End If"
.InsertLines cLines + 32, " "
.InsertLines cLines + 33, "End Sub

"
End With
'Open WBpath & "\" & "Trackreport.txt" For Append As 1
'Print #1, "Button code for button 10 done"
'Close 1
jump:
End If
Next i
Der Name der Prozedur richtet sich nach dem Wert der Angelegten Checkbox und ich brauche im Macro die Pruefung, ob dieser Macroname schon vorhanden ist.
Gruesse
Dirk aus Dubai

Anzeige
AW: pruefen ob Prozedurname vorhanden ist
12.01.2009 18:28:00
Roland
Hallo Dirk,
als Ansatz (ohne Fehlerbehandlung etc.)

Private Function MakroVorhanden(ModulName As String, Bezeichnung As String) As Boolean
MakroVorhanden = ThisWorkbook.VBProject.VBComponents(ModulName).CodeModule.ProcStartLine( _
Bezeichnung, vbext_pk_Proc)  0
End Function


Sub test()
MsgBox MakroVorhanden("Modul1", "MakroVorhanden")
End Sub


Kommst Du damit weiter?
Gruß aus dem etwas kühleren Berlin
Roland Hochhäuser

AW: pruefen ob Prozedurname vorhanden ist
13.01.2009 09:04:00
dirk
Hallo!
Leider funktioniert das bei mir nicht. Steigt mit Fehler aus.
Ich habe fuer ModulName activeworkbook.sheet1.name und fuer Bezeichnung Bezeichnung="Private Sub " & lastbutton & "_Click"
lastbutton is zugewiesen mit lastbutton = Selection.Name waehrend der button ausgewaehlt ist.
Woran kann das liegen?
Danke fuer eure Hilfe.
Dirk aus Dubai
Anzeige
AW: pruefen ob Prozedurname vorhanden ist
13.01.2009 10:03:18
Roland
Hallo Dirk,
setze zunächst einen Verweis auf Microsoft Visual Basic for Applications Extensibility 5.3 (Extras / Verweise und dann anhaken).
Übergib dann mal ActiveWorkbook.Sheets(1).Name (mit s und Klammern), und den reinen Prozedurnamen ohne "Private Sub", dann müsste es klappen, also so:

Sub test()
MsgBox MakroVorhanden(ActiveWorkbook.Sheets(1).Name, lastbutton & "_Click")
End Sub


Gruß von
Roland Hochhäuser

AW: pruefen ob Prozedurname vorhanden ist
13.01.2009 11:50:00
dirk
Hallo!
Klappt!
Danke
Dirk aus Dubai
Danke fürs Feedback o.w.T.
13.01.2009 11:55:00
Roland
AW: pruefen ob Prozedurname vorhanden ist
12.01.2009 17:12:03
Hajo_Zi
Halolo drk,
fange an die ersten Buchstaben von Deiner neuen Orozedur zu schreiben und nach ca. 3 Buchstaben strg+Leerstelle und er zeigt Dir welche er schon hat die mit diesen Buchstaben beginnen.

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige