Next sans for VBA Excel
guillaumegh
Messages postés
10
Statut
Membre
-
eriiic Messages postés 25847 Statut Contributeur -
eriiic Messages postés 25847 Statut Contributeur -
Bonjour,
J'ai un petit problème sous Excel 2003, lors de la compilation.. le message "next sans for" s'affiche.
Je ne comprends pas du tout car jusqu'à hier, ça tournait encore parfaitement, et je ne l'ai pas tant que ça modifié!
Voilà mon code :
Function b2()
Dim repertoire As String
Dim fichier As String
Dim l As Integer
Dim i As Integer
Dim j As Integer
Application.DisplayAlerts = False
repertoire = "C:\Documents and Settings\FX056065\Bureau\Stage\Analyse existant\Contrôles\Fichiers controles + formalismes\TOUS LES FICHIERS CONTROLE"
fichier = ""
For l = 1 To 345
fichier = Sheets("Feuil1").Cells(l, 2).Value
If fichier <> "" And Cells(l, 3).Value <> "" Then
ChDir repertoire
Workbooks.Open Filename:=repertoire & "\" & fichier 'ouvre le fichier
Windows(fichier).Activate 'le met à l écran
'suite de tests
For i = 15 To 25
For j = 2 To 3
If Sheets(1).Cells(2, 1).Value = "Désignation :" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 1"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 8).Value = "Désignation" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 2"
ElseIf Sheets(1).Cells(2, 3).Value = "Désignation" And Sheets(1).Cells(3, 3).Value = "Référence" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 3"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "N° OF:" And Sheets(1).Cells(1, 17).Value <> 1 And Sheets(1).Cells(1, 29).Value = "" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "N° OF:" And Sheets(1).Cells(1, 17).Value = "N° OF:" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4bis"
ElseIf Sheets(1).Cells(2, 3).Value = "REFERENCE: " And Sheets(1).Cells(1, 3).Value = "N° OF:" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4tierce"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(2, 15).Value = "REFERENCE: " Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4-4"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(2, 17).Value = "REFERENCE: " Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4-5"
ElseIf Sheets(1).Cells(2, j).Value = "REFERENCE: " And Sheets(1).Cells(2, i).Value = "REFERENCE: " Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4-i"
Cells(l, 4).Value = j
Cells(l, 5).Value = i
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "N° OF:" And Sheets(1).Cells(6, 1).Value = 1 Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 5"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "LOT " Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 6"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "N° OF:" And Sheets(1).Cells(1, 29).Value = "N° OF:" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 8"
ElseIf Sheets(1).Cells(1, 3).Value = "OF n°" And Sheets(1).Cells(1, 28).Value = "N° piece" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 9"
End If
Next j
Next i
Windows("Type de formalisme.xls").Activate
Windows(fichier).Activate
ActiveWindow.Close 'ferme le fichier
Next l
End Function
Merci d'avance
J'ai un petit problème sous Excel 2003, lors de la compilation.. le message "next sans for" s'affiche.
Je ne comprends pas du tout car jusqu'à hier, ça tournait encore parfaitement, et je ne l'ai pas tant que ça modifié!
Voilà mon code :
Function b2()
Dim repertoire As String
Dim fichier As String
Dim l As Integer
Dim i As Integer
Dim j As Integer
Application.DisplayAlerts = False
repertoire = "C:\Documents and Settings\FX056065\Bureau\Stage\Analyse existant\Contrôles\Fichiers controles + formalismes\TOUS LES FICHIERS CONTROLE"
fichier = ""
For l = 1 To 345
fichier = Sheets("Feuil1").Cells(l, 2).Value
If fichier <> "" And Cells(l, 3).Value <> "" Then
ChDir repertoire
Workbooks.Open Filename:=repertoire & "\" & fichier 'ouvre le fichier
Windows(fichier).Activate 'le met à l écran
'suite de tests
For i = 15 To 25
For j = 2 To 3
If Sheets(1).Cells(2, 1).Value = "Désignation :" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 1"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 8).Value = "Désignation" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 2"
ElseIf Sheets(1).Cells(2, 3).Value = "Désignation" And Sheets(1).Cells(3, 3).Value = "Référence" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 3"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "N° OF:" And Sheets(1).Cells(1, 17).Value <> 1 And Sheets(1).Cells(1, 29).Value = "" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "N° OF:" And Sheets(1).Cells(1, 17).Value = "N° OF:" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4bis"
ElseIf Sheets(1).Cells(2, 3).Value = "REFERENCE: " And Sheets(1).Cells(1, 3).Value = "N° OF:" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4tierce"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(2, 15).Value = "REFERENCE: " Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4-4"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(2, 17).Value = "REFERENCE: " Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4-5"
ElseIf Sheets(1).Cells(2, j).Value = "REFERENCE: " And Sheets(1).Cells(2, i).Value = "REFERENCE: " Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 4-i"
Cells(l, 4).Value = j
Cells(l, 5).Value = i
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "N° OF:" And Sheets(1).Cells(6, 1).Value = 1 Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 5"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "LOT " Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 6"
ElseIf Sheets(1).Cells(2, 2).Value = "REFERENCE: " And Sheets(1).Cells(1, 2).Value = "N° OF:" And Sheets(1).Cells(1, 29).Value = "N° OF:" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 8"
ElseIf Sheets(1).Cells(1, 3).Value = "OF n°" And Sheets(1).Cells(1, 28).Value = "N° piece" Then
Workbooks("Type de formalisme.xls").Activate
Cells(l, 3).Value = "Type 9"
End If
Next j
Next i
Windows("Type de formalisme.xls").Activate
Windows(fichier).Activate
ActiveWindow.Close 'ferme le fichier
Next l
End Function
Merci d'avance
A voir également:
- Vba next sans for
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Instagram for pc - Télécharger - Divers Communication
- Incompatibilité de type vba ✓ - Forum Programmation
- Microsoft store download for pc - Guide
5 réponses
Bonjour,
C'est pas forcément un For ou un next qui manque. Cela peut être un End If....
Mais comme ton code est illisible, à toi de trouver.
Petit conseil toutefois, Indente ton code.
Exemple non indenté :
même exemple indenté :
Ok?
Sinon, dans ton code :
Doukilé le End If de If en gras???
C'est pas forcément un For ou un next qui manque. Cela peut être un End If....
Mais comme ton code est illisible, à toi de trouver.
Petit conseil toutefois, Indente ton code.
Exemple non indenté :
For i = 1 to 18 For j = 3 to 5 If cells(i, 1) = 3 Then Cells(i, j) = "AB" Else Cells(i, j) = "ZE" End If nextj next i
même exemple indenté :
For i = 1 to 18
For j = 3 to 5
If cells(i, 1) = 3 Then
Cells(i, j) = "AB"
Else
Cells(i, j) = "ZE"
End If
nextj
next i
Ok?
Sinon, dans ton code :
For l = 1 To 345
fichier = Sheets("Feuil1").Cells(l, 2).Value
If fichier <> "" And Cells(l, 3).Value <> "" Then
'bla bla bla
Next j
Next i
Windows("Type de formalisme.xls").Activate
Windows(fichier).Activate
ActiveWindow.Close 'ferme le fichier
Next l
Doukilé le End If de If en gras???