Makro

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
  • Makro von Micha vom 21.03.2005 15:15:01
Bild

Betrifft: Makro
von: Micha
Geschrieben am: 21.03.2005 15:15:01
Ich habe 2 kleine Probleme bei der Makroverarbeitung.
1:Ich möchte in einer Excel-Tabelle nach einem vorgegebenen Begriff suchen und nur wissen ob "vorhanden" oder "nicht vorhanden". Mit ".Find" betsteht das Problem, daß ich dies einen FEHLER liefert wenn der Begriff nicht gefunden wurde.
2: Ich starte eine Oberfläche in Visal Basic und möchte eine Excel Tabelle öffnen (Workbooks.Open Filename:=...). Wenn die Tabelle offen ist soll die Bearbeitung des Makros unterbrochen werden, bis die aktive Tabelle geschlossen wird.
Gibt es eine Lösung??

Bild

Betrifft: AW: Makro
von: Matthias G
Geschrieben am: 21.03.2005 15:29:14
Hallo Micha,
Zu 1
Sub finde()
Dim s As Range
Set s = Range("A1:X65536").Find(What:="Hallo")
If s Is Nothing Then
    MsgBox "Nicht gefunden"
Else
    MsgBox "Gefunden!"
End If
End Sub

zu 2
Du müsstest das Makro in 2 Makros aufteilen...
Am besten wäre es, wenn du bei erneuter Aktivierung der Mappe [Workbook_Activate()] prüfst, ob die Datei geschlossen wurde, und du wenn ja, du dann ein anderes Makro startest, welches deinen Berechnungen fortführt.
Gruß Matthias
Bild

Betrifft: AW: Makro
von: micha
Geschrieben am: 21.03.2005 16:46:47
vielen Dank!
Die Suchfunktion funktioniert so wunderbar.
Mit der Unterbrechung des Makros ist es noch etwas schierig.Wie könnte ich ein Makro in einem anderen starten?
Gruß Micha
Bild

Betrifft: AW: Makro
von: Matthias G
Geschrieben am: 21.03.2005 17:00:58
Hallo Micha,
naja, z.B. so:
in "DieseArbeitsmappe":
Option Explicit
Private Sub Workbook_Activate()
If CheckMappe <> "" Then
    If MappeOffen(CheckMappe) = False Then Makro2
End If
End Sub

in ein normales Modul:

Option Explicit
Public CheckMappe As String
Sub Makro1()
Dim fn As String
fn = "C:\test.xls"
Workbooks.Open Filename:=fn
CheckMappe = ActiveWorkbook.name
End Sub
Sub Makro2()
CheckMappe = ""
MsgBox "So, weiter im Text"
End Sub
Function MappeOffen(name As String) As Boolean
Dim dummy As String
On Error Resume Next
dummy = Workbooks(name).name
If Err.Number > 0 Then
    Err.Clear
    MappeOffen = False
Else
    MappeOffen = True
End If
End Function

Es wird also beim Aktivieren der Mappe geprüft, ob die mit Workbooks.Open geöffnete Mappe wieder geschlossen ist. Wenn ja, wird Makro2 gestartet.
Ob und wie dein Makro "teilbar" ist, kann ich so nicht beurteilen, da ich es nicht kenne ;-)
Gruß
Matthias
Bild

Betrifft: AW: Makro
von: micha
Geschrieben am: 21.03.2005 15:30:34
is ja easy
 Bild

Beiträge aus den Excel-Beispielen zum Thema "UserForm anzeigen und X deaktivieren"