Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Probleme mit Makro-Aufruf über Menu



Excel-Version: 8.0 (Office 97)

Betrifft: Probleme mit Makro-Aufruf über Menu
von: Maria
Geschrieben am: 05.06.2002 - 10:24:19

Hallo Excel-Freaks!

Ich habe mal wieder ein VBA-Problem. Diesmal will ich ein Menu hinzufügen, über das Makros aufgerufen werden sollen. Dank eines abgewandelten Beispiels hier aus dem Forum bzw. aus den Excelbeispielen von Hans (ohne die ich eh verloren wäre - hier noch mal vielen Dank) hab ich das Menu selbst auch mittlerweile hingekriegt. Nur erscheint es noch unterhalb der bisherigen Menuleiste + Buttonleiste, nicht rechts ob in der Menuleiste wie ich es lieber hätte.

Jetzt zum eigentlichen Problem: beim Makroaufruf erscheint jedes Mal die Fehlermeldung "Wrong number of arguments or invalid property assignment (Error 450)". Ich habe es schon versucht, die Makros als Public zu deklarieren oder von Subs in Functions umzustricken oder "modul1" davorzuschreiben - half alles nichts. :-(

Hier ist mein Menu-Code:

______________________________________________________________
Private Sub Workbook_Open()

Dim objBar As CommandBar
Dim objPopUp As CommandBarPopup
Dim objBtn1 As CommandBarButton
Dim objBtn2 As CommandBarButton
Dim strBar As String
strBar = "Comments"
On Error Resume Next
Application.CommandBars(strBar).Delete
On Error GoTo 0
Set objBar = Application.CommandBars.Add( _
Name:=strBar, _
Position:=msoBarTop, _
MenuBar:=False, _
Temporary:=True)
Set objPopUp = objBar.Controls.Add(Type:=msoControlPopup)
objPopUp.Caption = "Comments"
Set objBtn1 = objPopUp.Controls.Add
With objBtn1
.Caption = "Extract Comments"
.OnAction = "extract"
.Style = msoButtonCaption
End With

Set objBtn2 = objPopUp.Controls.Add
With objBtn2
.Caption = "Write back old comments"
.OnAction = "add_comments"
.Style = msoButtonCaption
End With
objBar.Visible = True

End Sub

______________________________________________________________

Thx in advance!

  

Re: Probleme mit Makro-Aufruf über Menu
von: Michael Scheffler
Geschrieben am: 05.06.2002 - 11:34:58

Hallo Maria,

wie sieht denn Dein "Extract"-Sub aus. Das solltest Du mal posten.

Zum Zweiten, wenn Du in die Excel-Menüleiste was reinbekommen möchtest, dann nimm Dir mal das Add-In von Hans, mit dem man Menüleisten bauan kann. Das schreibt Dir auch zugehörigen Code.

Gruß

Micha


  

Hier ist das aufzurufende Makro
von: Maria Winter
Geschrieben am: 05.06.2002 - 11:43:26

Hi Micha!

Hier ist das aufzurufende Makro, bzw. eines der beiden:

___________________________________________

Sub extract()
Dim strWB As String
Dim strDiv As String
Dim strCommentFile As String
Dim objProj As Object
Dim intProj As Integer
Dim objASPI As Object
Dim intASPI As Integer
Dim objComm As Object
Dim intComm As Integer
Dim intRows As Integer

strWB = ActiveWorkbook.Name
strDiv = Workbooks(strWB).Sheets("Graphics 1").Range("A1").Value
strCommentFile = "Comments_" & Format(Date, "mm") & "_" & strDiv & ".xls"


'count over all rows
intRows = ActiveSheet.UsedRange.Rows.Count


'find Project Name column
Set objProj = Workbooks(strWB).Sheets("Data from ASPI").Cells.Find(What:="Project Name", After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)

Worksheets("Data from ASPI").Select
objProj.Activate
intProj = objProj.Column

'find ASPI Ref column
Set objASPI = Workbooks(strWB).Sheets("Data from ASPI").Cells.Find(What:="ASPI Ref", After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)

Worksheets("Data from ASPI").Select
objASPI.Activate
intASPI = objASPI.Column

'find Comment column
Set objComm = Workbooks(strWB).Sheets("Data Input").Cells.Find(What:="Commentary", After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)

Worksheets("Data Input").Select
objComm.Activate

intComm = objComm.Column
'MsgBox intProj & Chr(10) & intASPI & Chr(10) & intComm


Workbooks.Add
ActiveWorkbook.SaveAs FileName:="h:\test\comments\" + strCommentFile
'ActiveWorkbook.FileName = strCommentFile

Application.DisplayAlerts = False

With Workbooks(strCommentFile)
.Sheets("Sheet2").Delete
.Sheets("Sheet3").Delete
.Sheets("Sheet1").Name = "Comments"
End With

Application.DisplayAlerts = True

Workbooks(strWB).Activate
Workbooks(strWB).Sheets("Data from ASPI").Select
'Cells(intRows, intProj).Select
'Cells(Selection.End(xlUp)).Select
Range(Cells(intRows, intProj), Cells(2, intProj)).Select
Selection.Copy

Workbooks(strCommentFile).Activate
Sheets("Comments").Range("A1").Select
ActiveSheet.Paste

Workbooks(strWB).Activate
Workbooks(strWB).Sheets("Data from ASPI").Select
Cells(65536, intASPI).Select
Range(Selection, Selection.End(xlUp)).Select
Range(Selection, Cells(2, intASPI)).Select
Selection.Copy

Workbooks(strCommentFile).Activate
Sheets("Comments").Range("B1").Select
ActiveSheet.Paste

Workbooks(strWB).Activate
Workbooks(strWB).Sheets("Data Input").Select
'ActiveSheet.Cells(2, 19).Select
'ActiveSheet.Cells(65535, 19).Select
'Range("S65535").End(xlUp).Select
Cells(65536, intComm).Select
Range(Selection, Selection.End(xlUp)).Select
Range(Selection, Cells(2, intComm)).Select
Selection.Copy

Workbooks(strCommentFile).Activate
Sheets("Comments").Range("C1").Select
ActiveSheet.Paste

Cells.Select
Selection.Columns.AutoFit

Workbooks(strCommentFile).Close savechanges:=True

End Sub

  

Re: Hier ist das aufzurufende Makro
von: Michael Scheffler
Geschrieben am: 05.06.2002 - 16:39:25

Hallo Maria,

Du hast dann offensichtlich mehrere Workbooks? Und nur in einem ist dann das Makro drin? Das könnte Probleme geben, wenn ich es richtig verstehe. Kommt er dennn überhaupt bei Deime Maakro nach ButtonClick an?

Gruß

MichA


  

Re: Hier ist das aufzurufende Makro
von: Maria Winter
Geschrieben am: 05.06.2002 - 16:52:33

Das Menu ist in einem Add-in und die Makros, die damit aufgerufen werden, ebenfalls und diese sollen auf die grade aktive Excel-Datei angewandt werden. Wenn ich von Hand Makro-Buttons in die Iconbar einbastel funktioniert das auch.

Und nein - beim Button-Click findet er das Makro nicht. Kann ich irgendwie den Add-in-Dateinamen einbinden in den Aufruf auf daß es funktioniere? Wie ist da die Syntax?


  

Re: Hier ist das aufzurufende Makro
von: Michael Scheffler
Geschrieben am: 06.06.2002 - 09:54:32

Hallo Maria,

keine Idee:-(

Gruß

Micha

  

Schlecht :-(
von: Maria Winter
Geschrieben am: 06.06.2002 - 09:56:19

Trotzdem danke!