Anzeige
Archiv - Navigation
1408to1412
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

For Each Befehl verschachteln.

For Each Befehl verschachteln.
24.02.2015 18:15:13
Claude
Hallo Zusammen,
mein Makro und ich hängen und sind auf der Suche nach Hilfe..
Also folgendes wird getan:
Ich habe in einem Blatt Werte in Spalte B, D.
Über eine Userform wird aus diesen Spalten mir jeweils 3Werte zur Auswahl gestellt. Wenn der Benutzer pro Spalte eine Auswahl trifft, soll mein Makro die Spalten D und B auf alle Werte untersuchen, die unterhalb des Gewählten liegen.
Also alle Werte aus Spalte b nehmen die kleiner gleich zb. 3500 sind. Es gibt dabei auch Werte, die mit 3 Stellen nach dem Kommata angegeben werden. Gleiches für Spalte D.
Jeden Wert (gleichzeitig für beide Werte aus Spalte BuD), der diese Bedingung erfüllt, soll dieser kopiert werden, in Tabelle Dampf in Zellen F4 und F3 eingefügt und dann ein Makro "Massenstrom_wada_erhöhen" ausgeführt werden. Dieser bestimmt den Wert in Tabelle Dampf Zelle K5. Es soll ein neues Blatt erstellt werden und in dieses dann alle Werte in Spalte A nacheinander hineinkopiert.
Doch leider funktioniert das nicht...weiß jemand wieso?
Private Sub Ok_Click()
Me.OptionButton1.Caption = T_Wert_1
Me.OptionButton2.Caption = T_Wert_2
Me.OptionButton3.Caption = T_Wert_3
Me.OptionButton4.Caption = m_Wert_1
Me.OptionButton5.Caption = m_Wert_2
Me.OptionButton6.Caption = m_Wert_3
'mit getroffener Auswahl wird dieser für T und m eine Variable zugeordnet um damit weiter  _
arbeiten zu können
If OptionButton1 = True Then
T_Wert_1 = Auswahl_T
End If
If OptionButton2 = True Then
T_Wert_2 = Auswahl_T
End If
If OptionButton3 = True Then
T_Wert_3 = Auswahl_T
End If
If OptionButton4 = True Then
m_Wert_1 = Auswahl_m
End If
If OptionButton5 = True Then
m_Wert_2 = Auswahl_m
End If
If OptionButton6 = True Then
m_Wert_3 = Auswahl_m
End If
'deklaration der Variablen siehe oben
m_abgas = tbl_Zieltabelle.Range("B4").End(xlDown).Row
T_abgas = tbl_Zieltabelle.Range("D4").End(xlDown).Row
'deklaration der Variablen siehe oben
Set m_Bereich = tbl_Zieltabelle.Range("B4:B" & m_abgas)
Set T_Bereich = tbl_Zieltabelle.Range("D4:D" & T_abgas)
'ab Zeile 4 soll jeweils der errechnete Wert in das neue Tabellenblatt eingefügt werden
Zeile_Pel = 4
'Jeder Wert, der geringer als die getroffen Auswahl_m und Auswahl_T ist, soll in Blatt " _
Dampfexpander" kopiert
'das Makro Massenstrom_wada_erhöhen aktiviert werden, wenn beide Zahlen eingefügt sind
'Wert der Zelle K5 in ein neu eingerichtetes Blatt kopiert werden
Application.ScreenUpdating = False
Sheets.Add(after:=Sheets(Sheets.Count)).Name = ("elektrische Leistung für" & Auswahl_m & "," &   _
_
Auswahl_T)
Sheets("elektrische Leistung für" & Auswahl_m & "," & Auswahl_T).Range("A1").Value = " _
elektrische Leistung [kWh]"
For Each Zelle_m In m_Bereich
If (Zelle_m 
Next Zelle_T
End If
Next Zelle_m
Worksheets("elektirsche Leistung für" & Auswahl_m & "," & Auswahl_T).Select
With Sheets("elektrische Leistung für" & Auswahl_m & "," & Auswahl_T)
If .ChartObjects.Count > 0 Then .ChartObjects.Delete
Pel = .Range("A4").End(xlDown).Row
Pel_Min = Application.WorksheetFunction.Min(Range("A4:A" & Pel))
Pel_Max = Application.WorksheetFunction.Max(Range("A4:A" & Pel))
With .ChartObjects.Add(150, 10, 500, 300)
.Name = "elektrische Leistung [kWh]"
With .Chart
.SetSourceData Source:=Sheets("elektrische Leistung für" & Auswahl_m & "," &  _
Auswahl_T).Range("A4:A" & Pel)
.ChartType = xlXYScatterSmooth
.HasLegend = False
.HasTitle = True
.ChartTitle.Text = .Parent.Name
With .Axes(xlValue)
.MinimumScale = Pel_Min
.MaximumScale = Pel_Max
.MajourUnit = 5
End With
End With
End With
End With
Application.ScreenUpdating = True
OptionButton1 = False
OptionButton2 = False
OptionButton3 = False
OptionButton4 = False
OptionButton5 = False
OptionButton6 = False
Worksheets("elektrische Leistung für" & Auswahl_m & "," & Auswahl_T).Select
Show Neue_Auswahl_treffen
End Sub

Ich denke, dass die gewählten Werde aus der Userform nicht übernommen werden...bin mir aber nicht sicher, da der Befehl sich hauptsächlich an der If schleife aufhängt..
Falls jemand Zeit hat...ich bin sehr glücklich wenn dieses Mysterium gelöst ist.
Danke schon mal!!

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Userform Werte in Modul übernehmen
26.02.2015 12:09:18
EtoPHG
Hallo Claude,
Zitat:... die gewählten Werde aus der Userform nicht übernommen werden...
Da könntest du Recht haben. Leider sehen wir nicht, in was für einer Klasse dein Code steht (Modul, Tabelle, Userform)?
Auch hast du kein Option Explicit als erste Codezeile , was jedem VBA-Programmierer zu empfehlen ist, damit undeklarierte Variablen verboten werden! Wir sehen als nicht, was z.B. die Variable Auswahl_m enthält oder enthalten sollte. Du kannst das aber durch schrittweises Prüfen im Debugger abklären. Sonst lade eine Beispielmappe hoch, die dein Problem verdeutlicht!
Gruess Hansueli
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige