Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
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 ohne next

For ohne next
18.10.2020 19:21:42
Meier
Hallo Zusammen
Kann mir einer erklären warum ich bei der Durchführung die Fehlermeldung beim komprimieren "For ohne Next" bekomme?
Gruss
Sven
Sub TestConditions()
Dim GradeRecord_StudentRange As Range
'Students Sheet
Dim Students_FirstNameRange As Range
Dim Student As Range
Dim StudentFirstName As Range
Dim NoEhl As Double
Dim Lastsheet As Worksheet
Set GradeRecord_StudentRange = Sheet1.Range("C5:C39")
Set Students_FirstNameRange = Sheet5.Range("C2:C36")
'check if that student is somewhere in column C of the Students sheet
For Each Student In GradeRecord_StudentRange.Cells
'We are going to check if "student" is somewhere in Column C of sheets range
'We need to loop through each one, and check if the names corresponds.
For Each StudentFirstName In Students_FirstNameRange.Cells
If Student = Split(StudentFirstName, " ")(0) Then
'Dim noEhl as double
NoEhl = StudentFirstName.Offset(, -2)
End If
Next StudentFirstName
If NoEhl  "" Then
Set Lastsheet = Worksheets(Sheets.Count)
Sheet2.copy After:=Lastsheet
StudentFirstName = NoEhl
NoEhl = ""
End If
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: For ohne next
18.10.2020 19:24:25
Regina
Hi, weil die äußere For-Schleife eben kein Next hat.
Gruß Regina
AW: For ohne next
18.10.2020 19:26:30
Hajo_Zi
es fehl
Next Studen
vor End Sub.

AW: For ohne next
18.10.2020 19:26:50
Daniel
Weil für das "For each Student" das entsprechende Next fehlt.
Gruß Daniel
AW: For ohne next
18.10.2020 19:53:10
Meier
Ok, jetzt hab dich die Anpassung von Daniel gemacht und von OberSchlumpf berücksichtigt ;-), jedoch hab ich nun einen Bugg! Siehe fett gedruckt.
Option Explicit
Sub TestConditions()
Dim GradeRecord_StudentRange As Range
'Students Sheet
Dim Students_FirstNameRange As Range
Dim Student As Range
Dim StudentFirstName As Range
Dim NoEhl As Double
Dim Lastsheet As Worksheet
''Call Random Numbers to the Template Sheet
'Dim Random_Grades As Single
'Dim CriStrCom As String
'Set CriStrCom = Sheet2.Range("D8")
'Dim PeopAna As String
'Set PeopAna = Sheet2.Range("D9")
Set GradeRecord_StudentRange = Sheet1.Range("C5:C39")
Set Students_FirstNameRange = Sheet5.Range("C2:C36")
'check if that student is somewhere in column C of the Students sheet
For Each Student In GradeRecord_StudentRange.Cells
'We are going to check if "student" is somewhere in Column C of sheets range
'We need to loop through each one, and check if the names corresponds.
Next
For Each StudentFirstName In Students_FirstNameRange.Cells
If Student = Split(StudentFirstName, " ")(0) Then
NoEhl = StudentFirstName.Offset(, -2)
End If
Next StudentFirstName
If NoEhl  "" Then
'        Set Lastsheet = Worksheets(Sheets.Count)
'        Sheet2.copy After:=Lastsheet
'        StudentFirstName = NoEhl
'Call Random_Grades
'        Random_Grades = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
NoEhl = ""
End If
End Sub

Anzeige
AW: For ohne next
18.10.2020 19:59:47
Oberschlumpf
dein "neues" Next muss unterhalb von Next StudentFirstName stehen
AW: For ohne next
18.10.2020 20:18:30
Meier
Ok. Hab ich gemacht, aber trotzdem besteht das Problem noch mit der Split Zeile.
AW: For ohne next
18.10.2020 21:15:44
Daniel
Hättest du die Güte uns mitzuteilen, wie die Fehlernummer und der Text der Fehlermeldung lauten, sowie welchen Wert die beiden Variablen haben wenn der Fehler auftritt?
Gruß Daniel
AW: For ohne next
19.10.2020 09:18:54
Meier
Hallo Daniel
Vielen Dank wieder einmal für deine Unterstützung. Ich habe zwei Fragen!
Ich habe nun einen Laufzeitfehler '13 - Typen unverträglich in dieser Zeile (If NoEHL "" Then)
Was hab ich falsch deklariert?
Im Anschluss an diese Zeile (If NoEHL "" Then) möchte ich gerne eine Kopie am Ende der Sheets einfügen und sie mit der Nummmer (NoEHL) benennen.
Bin ich auf dem richtigen Weg?
Gruss
Sven
Option Explicit
Sub TestConditions()
'Grade Record Sheet
Dim GradeRecord_StudentRange As Range
Set GradeRecord_StudentRange = Sheet1.Range("C5:C10")
'Students Sheet
Dim Students_FirstNameRange As Range
Set Students_FirstNameRange = Sheet5.Range("C2:C36")
'Student in Grade Record Sheet
Dim Student As Variant
'Student in Students Sheet
Dim StudentFirstName As Variant
Dim NoEHL As Long
Dim Lastsheet As Worksheet
''Call Random Numbers to the Template Sheet
'Dim Random_Grades As Single
'Dim CriStrCom As String
'Set CriStrCom = Sheet2.Range("D8")
'Dim PeopAna As String
'Set PeopAna = Sheet2.Range("D9")
'check if that student is somewhere in column C of the Students sheet
For Each Student In GradeRecord_StudentRange.Cells
'We are going to check if "student" is somewhere in Column C of sheets range
'We need to loop through each one, and check if the names corresponds.
Next
For Each StudentFirstName In Students_FirstNameRange.Cells
If Student = Split(StudentFirstName, " ")(0) Then
NoEHL = StudentFirstName.Offset(, -2)
End If
Next
If NoEHL  "" Then
'        Set Lastsheet = Worksheets(Sheets.Count)
'        Sheet2.copy After:=Lastsheet
'        StudentFirstName = NoEhl
'Call Random_Grades
'        Random_Grades = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
NoEHL = ""
'Next StudentFirstName (war vorher zwischen End if und Next If noEHL"" Then
End If
End Sub

Anzeige
AW: For ohne next
19.10.2020 09:42:47
Daniel
Hi
wieso ist der Fehler jetzt plötztlich von der einen Zeile in die andere Zeile gewandert?
was hat denn dein vorheriges Problem gelöst?
für dich zwei Informationen:
1. mit LONG deklariert man eine Zahl-Variable
2. Zahlvariablen, denen noch nie ein Wert zugewiesen wurde, enthalten den Wert 0
3. "" ist ein TEXT
klar wo dein jetztiger Fehler liegt?
Gruß Daniel
AW: For ohne next
19.10.2020 11:00:52
Meier
Im vorigen Problem hatte ich die Variable nicht definiert. Mir fällt es trotz "Comments" schwer den Überblick zu behalten und vor allem die richtigen Variablen zuzuordnen und alle Codes in Einklang zu bringen damit das Macro funktioniert. Ich glaube, es haben sich viele kleine Fehler eingeschlichen die ich nicht mehr sehe und nicht die genügende Kompetenz habe. Kannst du eventuell mal durchschauen, Daniel?
Hier mal das komplette Macro:
Sub TestConditions()
'Grade Record Sheet
Dim GradeRecord_StudentRange As Range
Set GradeRecord_StudentRange = Sheet1.Range("C5:C10")
'Students Sheet
Dim Students_FirstNameRange As Range
Set Students_FirstNameRange = Sheet5.Range("C2:C36")
'Student in Grade Record Sheet
Dim Student As Variant
'Student in Students Sheet
Dim StudentFirstName As Variant
Dim NoEHL As String
Dim Lastsheet As Worksheet
'check if that student is somewhere in column C of the Students sheet
For Each Student In GradeRecord_StudentRange.Cells
'We are going to check if "student" is somewhere in Column C of sheets range
'We need to loop through each one, and check if the names corresponds.
Next
For Each StudentFirstName In Students_FirstNameRange.Cells
If Student = Split(StudentFirstName, " ")(0) Then
NoEHL = StudentFirstName.Offset(, -2)
End If
Next StudentFirstName
If NoEHL  "" Then
'Insert CopyTemplate
Dim newSheet As Worksheet
ActiveSheet.copy After:=Worksheets(Sheets.Count)
On Error Resume Next
ActiveSheet.Name = NoEHL
'Insert Random Number
Dim MyValue As Integer
MyValue = Int((6 * Rnd) + 4)
Sheet2.Range("D8") = MyValue
Sheet2.Range("D9") = MyValue
'Insert Grade from Record to NewSheet
Dim Programming As Range
Student.Offset(, 1).copy newSheet.Range("D10")
Programming = newSheet("D10").Value
'Im neuen Tabellenblatt template habe ich nun den
'gewichteten Mittelwert für die Werte My Value und
'Insert Grade vom Grade Record eingefügt, damit die Note
'als Wort wie folgend ausgegeben wird (VBA Code?)
'Grading in words
Select Case Range("D11").Value
Case 6
Range("D13").Value = "Excellent"
Case 5.5 To 5.9
Range("D13").Value = "Very Good"
Case 5 To 5.4
Range("D13").Value = "Good"
Case 4.5 To 4.9
Range("D13").Value = "Satisfactory"
Case 4 To 4.4
Range("D13").Value = "Sufficient"
'Information Student First name?
Case 1 To 3.9
Range("D13").Value = "Student" & "failed the module"
NoEHL = ""
End Select
NoEHL = ""
End If
End Sub

Anzeige
AW: For ohne next
19.10.2020 11:18:37
Daniel
Irgendwo findet die kostenlose Nachbarschaftshilfe, wie sie im Forum geleistet wird, seine Grenze.
diese mag bei jedem Helfer anders liegen.
meine wäre hier erreicht.
Gruß Daniel
AW: For ohne next
19.10.2020 11:21:19
Meier
Ok, das kann ich verstehen! Trotzdem vielen Dank für die Hilfe.
Gruss Sven
AW: For ohne next
18.10.2020 19:30:12
Oberschlumpf
...und es wird nich komprimiert, es wird compilert...

158 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige