End if sans Bloc If

Bonjour,

Je me doute bien que ce genre d'erreurs à déjà été répertorié des centaines de fois. Cependant je ne trouve vraiment pas la cause du problème.

Sub calculmachine()

Dim exist As Boolean

Dim i, j As Integer

Dim derligne, machine1, endline As String

endline = Worksheets("test").Range("Q655356").End(xlUp).Row

machine1 = Worksheets("calcul").Range("AB3")

derligne = Worksheets("calcul").Range("AB655356").End(xlUp).Row

Debug.Print i, j, derligne, machine1, endline

For i = 1 To endline

exist = False

If Worksheets("test").Cells(21, i) = machine1 Then

For j = 4 To derligne

Worksheets("calcul").Cells(28, j) = Worksheets("test").Cells(20, i).Value

exist = True

End If

If exist = False Then

machine1 = Worksheets("test").Cells(21, i).Value

End If

Next i

Next j

End Sub

Le End If mis en gras est celui qui me cause du tort. avant même que la macro ne commence à s'executer, le message "End If sans Bloc If" s'affiche.

Des idées ?

Cordialement

Bonjour,

Commences par modifier ta déclaration des variables :

Dim exist As Boolean
Dim i as long, j As Long
Dim derligne as Long, machine1, endline as Long

Cdlt

Bonjour,

effectivement, c'est tout de même plus propre. Cependant, cela ne résous pas le soucis.... le resultat reste le même.

Je ne comprends vraiment d'où cela peut venir...

Re,

A tester.

Cdlt

Option Explicit
Public Sub calculmachine()
Dim exist As Boolean
Dim Ws1 As Worksheet, Ws2 As Worksheet
Dim Derligne As Long, Endline As Long
Dim i As Long, j As Long
Dim machine1
    Application.ScreenUpdating = False
    Set Ws1 = Worksheets("test")
    Set Ws2 = Worksheets("calcul")
    Endline = Ws1.Range("Q655356").End(xlUp).Row
    exist = False
    With Ws2
        machine1 = .Range("AB3")
        Derligne = .Range("AB655356").End(xlUp).Row
        'Debug.Print i, j, Derligne, machine1, Endline
        For i = 1 To Endline
            If Ws1.Cells(21, i) = machine1 Then
                For j = 4 To Derligne
                    Ws2.Cells(28, j) = Ws1.Cells(20, i)
                    exist = True
                Next j
            End If
            If exist = False Then machine1 = Worksheets("test").Cells(21, i)
        Next i
    End with
        Set Ws1 = Nothing: Set Ws2 = Nothing
End Sub

Re,

malgrès le fait que le code s'execute sans erreur, la macro ne produit rien.... les cellules de la feuille calul ne changent pas de valeur.

J'ai tenté de reprendre certaines parties du code et de les arrangées mais sans succès (celà ne fait que deux semaines que j'ai commencé le VBA)

je vous joins donc le fichier excel directement si cela peut vous aider.

Le code concerné se situe dans le module 1, et s'actionne avec le bouton valider du userform 3. Si vous avez des questions, je suis au tacquet derrière mon pc.

Merci de votre aide !

Re,

Voir commentaires dans le module 1 et médites

A te relire

Cdlt.

nb : un ancien de RSA, Flins, DPR (DCV) / si prochain message avec fichier, penes à compresser car tu risques de dépasser la taille limite du fichier, soit 300ko.

Re,

Effectivement, mon code contenait beaucoup d'erreures de débutants. Merci d'avoir pris le temps de m'aider.

je suis en train d'examiner tout cela. Je pense que je devrait réussir à m'en sortir grace à ton aide.

Par contre, "jep" : ?? qu'est-ce que cela signifie ?

(ps : effectivement, je suis un jeune ingénieur en alternance chez renault, qui galère pas mal sur le VBA, après deux ans passées à flins sur les belles machines 3D )

cdlt

Rechercher des sujets similaires à "end bloc"