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

If Anweisungen erkennen im Unterprogramm (Makro)

If Anweisungen erkennen im Unterprogramm (Makro)
20.04.2018 12:40:16
Azarmin
Moin,
ich hoffe ich kann meine Frage verständlich erklären:
Ich Programmiere ein Makro, der Werte in die Tabellen eintragen soll nach mehreren Abfragen. Da mein Programm zu groß war, musste ich das Programm aufeilen in verschiedenen Modulen:
Call Mpltz1AT700(zg, zh)
End Sub

Sub Mpltz1AT700(zg As Long, zh As Range)
Klappt auch an sich super. Ich möchte, dass das unterprogramm auch die IF anweisungen des " _
Oberprogramms" aufnimmt, da es ein fortlaufendes Programm ist. Das tut er leider nicht. In _
Vereinfachte/gekürzte Version mein Programm:
Mpltz = InputBox(" Messplatz Nummer: ", "Eingabe") '' Abfrage
Gerät = InputBox("Welches Gerät benötigen Sie? ", "Eingabe")
If Gerät = "at1000" Or Gerät = "AT1000" Or Gerät = "At1000" Then
Kopf1 = MsgBox("Benutzen Sie den DD45?", vbYesNo)
Kopf2 = MsgBox("Benutzen Sie den AT1350?", vbYesNo)
........
End If
'' weitergabe von Variabeln, da Programm zu groß
Call Mpltz5AT1000(.......zg, zh)
End If
End Sub

Sub Mpltz5AT1000(...... zg As Long, zh As Range)
If Kopf1 = vbYes And Mpltz = 5 And Kopf2 = vbYes Then
.......
Call Mpltz1AT700(.....zg, zh)
End Sub

Sub Mpltz1AT700(...... zg As Long, zh As Range)
Dim HDA280
Dim HDA300
Dim Ear
ElseIf Gerät = "at700" Or Gerät = "AT700" Or Gerät = "At700" Then
......
Und hier ist mein Problem: Das Programm erkennt das ElseIf nicht vom Gerät und erkennt nur das _
_
erste If vom Gerät. Im ersten Oberprogramm werde ich immer aufgefordert ein EndIf zu setzten _
obwohl ich nicht möchte, dass die erste Bedingung vom "Gerät" endet. Er soll noch in den Unterprogrammen danach fragen. Als groben Überblick: Ich habe 3 Abfragen die im Oberprogramm für alle Unterprogramme gelten sollen

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Anweisungen erkennen im Unterprogramm (Makro)
20.04.2018 13:04:13
Rudi
Hallo,
du kannst nicht einfach Programmstrukturen auseinander reißen.
Mir ist es noch nie gelungen, eine zu große Prozedur zu schreiben.
Gruß
Rudi
AW: If Anweisungen erkennen im Unterprogramm (Makro)
20.04.2018 13:07:46
Azarmin
aber ich bekomme die Fehlermeldung "Prozedur zu groß" ohne Aufteilung. Ich hab auch im Internet recherchiert, anscheinend passiert es schon öfters :(
lg Jasmin
AW: If Anweisungen erkennen im Unterprogramm (Makro)
20.04.2018 13:16:16
Rudi
Hallo,
da niemand dein Projekt kennt, kann dir auch niemand helfen.
Auf jeden Fall muss auf eine (mehrzeilige) If-Bedingung immer ein End If folgen.
Um die korrekte Einhaltung der Syntax kommst du nicht herum.
Gruß
Rudi
AW: If Anweisungen erkennen im Unterprogramm (Makro)
23.04.2018 11:30:34
Azarmin
Hallo Rudi,
danke für deine Hilfe. Ich versuche gerade das komplette Programm zu kürzen damit ich das Problem umgehen kann. Jetzt hab ich aber noch eine Frage: Ist es möglich eine Variabel einzusetzen in der Zeile Set Quelltab = ActiveWorkbook.Worksheets("va")? Das würde mir nämlich viel Arbeit ersparen. Leider kommt bei mir nur die Fehlermeldung: "Index außerhalb des gültigen Bereichs"
Dim va
Dim Mpltz
If Mpltz = 1 Then
va = MP1
ElseIf Mpltz = 2 Then
va = MP2
ElseIf Mpltz = 3 Then
va = MP3
ElseIf Mpltz = 4 Then
va = MP4
ElseIf Mpltz = 5 Then
va = MP5
End If
'
''DD45 einsetzen der Werte
c = 40 ''ab welcher Zeile die Werte eingefügt werden// Mikrofon
Bereich = "B68:B79"
Set Quelltab = ActiveWorkbook.Worksheets("va")
Set Zieltab = ActiveWorkbook.Worksheets("AT1000")
For Each d In Quelltab.Range("B68:B79")
Zieltab.Cells(c, 4) = d
c = c + 1
Next d
Anzeige
AW: If Anweisungen erkennen im Unterprogramm (Makro)
23.04.2018 11:53:52
Rudi
Hallo,
mit den " hast du es anscheinend nicht. ;-)
Select case Mpltz
case 1: va = "MP1"
case 2: va = "MP2"
'etc
End select
Set Quelltab = ActiveWorkbook.Worksheets(va)
Oder sind MP1...MP5 Variablen?
Dann natürlich
case 1: va = MP1
Gruß
Rudi
AW: If Anweisungen erkennen im Unterprogramm (Makro)
23.04.2018 12:56:37
Azarmin
hmm irgendwie will er immer noch nicht. Die Zeile wird markiert "Set Quelltab = ActiveWorkbook.Worksheets(va)" Index auserhalb.......
Dim va As Integer
Select Case Mpltz
Case 1: va = "MP1"
Case 2: va = "MP2"
Case 3: va = "MP3"
Case 4: va = "MP4"
Case 5: va = "MP5"
End Select
''DD45 einsetzen der Werte
c = 40 ''ab welcher Zeile die Werte eingefügt werden// Mikrofon
Bereich = "B68:B79"
Set Quelltab = ActiveWorkbook.Worksheets(va)
Set Zieltab = ActiveWorkbook.Worksheets("AT1000")
For Each d In Quelltab.Range("B68:B79")
Zieltab.Cells(c, 4) = d
c = c + 1
Next d
siehst du noch einen Fehler?
Anzeige
AW: If Anweisungen erkennen im Unterprogramm (Makro)
23.04.2018 13:00:08
Rudi
dann gibt es das Sheet nicht im ActiveWorkbook
AW: If Anweisungen erkennen im Unterprogramm (Makro)
23.04.2018 13:09:10
Azarmin
das ist für mich so verwirrend, da er nicht rummeckert wenn ich Set Quelltab = ActiveWorkbook.Worksheets("MP1") schreibe aber wenn ich es versuche durch eine Abfrage also je nach dem was eingegeben wird dies einzusetzten (MP2;MP3.....) durch eine Variabel erkennt er es nicht.
AW: If Anweisungen erkennen im Unterprogramm (Makro)
23.04.2018 13:12:33
Rudi
was steht denn in der Variable va? Ist sie evtl. leer?
Was in Mpltz? 1,2 oder "1","2"
Ohne deine Mappe zu kennen ist das stochern im Nebel.
AW: If Anweisungen erkennen im Unterprogramm (Makro)
23.04.2018 13:31:04
Azarmin
ja kann ich verstehen. Ich lad dir die Datei hoch, ich hoffe nur dass es nicht verwirrend ist. Ich habe vieles auskommentiert, da ich wie gesagt versuche einen besseren Weg zu finden.
AThaupt ist das Hauptprogramm wo die abfragen statt finden und je nach dem soll die bestimmte prozedure(At700,At10001) aufgerufen werden. MP1, MP2... sind verschiedene Werte auf verschiedenen Datenblättern. Ich danke dir echt vielmals ich schätze das sehr.
Anzeige
AW: If Anweisungen erkennen im Unterprogramm (Makro)
23.04.2018 13:33:40
Azarmin
hmmm gibt es einen Trick wie man eine Excel datei mit Makros hier hochläd? mir wird gesagt falsche Dateiform aber mit Makros gibt es gar nichts zum auswählen. Ich fühle mich echt total bescheuert mittlerweile :(
AW: If Anweisungen erkennen im Unterprogramm (Makro)
24.04.2018 21:41:00
Rudi
Hallo,
lies dir die Anweisungen genau durch.
Gruß
Rudi
AW: If Anweisungen erkennen im Unterprogramm (Makro)
25.04.2018 23:53:08
Azarmin
Hallo Rudi habe ich aber jede Konvertierung der Datei, hat die Seite nicht hochladen wollen. Mein Programm läuft aber auch mittlerweile, war nur ein kleiner Fehler. Danke für deine Hilfe

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige