Bonjour la communauté !
J'ai fais un petit programme, mais Excel me dit qu'il y a un bloc If sans bloc End If.. Je me suis empressé de relire attentivement le code pour trouver cette petite faute mais j'ai rien trouvé, et je me dis que ça vient sûrement d'autre part. Surtout qu'il m'affiche le bloc End Sub....
Une idée ? (ci-joint le code)
J'ai fais un petit programme, mais Excel me dit qu'il y a un bloc If sans bloc End If.. Je me suis empressé de relire attentivement le code pour trouver cette petite faute mais j'ai rien trouvé, et je me dis que ça vient sûrement d'autre part. Surtout qu'il m'affiche le bloc End Sub....
Une idée ? (ci-joint le code)
VB:
Sub lancement_cde()
'déclaration des variables
Dim nbligne As Integer
Dim wb1 As Workbook
Dim Fichier, Wrep, Saisie, stock, vert, orange, rouge As String
Dim TDates
Dim Lig As Long
Saisie = "HEKIPIA - Demande d'approvisionnement.xlsm"
Set wbDA = Workbooks(Saisie)
' Interrompt la mise à jour de l'écran. Ca accélère l'exécution du code
Application.ScreenUpdating = False
'déverrouillage feuilles
For i = 1 To 3
Sheets(i).Unprotect Password:=123
Next
Sheets("Données").Visible = True
Sheets("Interface").Visible = True
If MsgBox("Avez-vous terminé de saisir ?", vbYesNo, "Confirmation de saisie") = vbNo Then
MsgBox ("Veuillez continuer la saisie")
Exit Sub
End If
'compteur ligne jusqu'à erreur code article
Lig = 3 'première ligne à vérifier
Do While Not IsError(Sheets("Saisie").Range("B" & Lig)) Or IsEmpty(Sheets("Saisie").Range("B" & Lig))
Lig = Lig + 1
Loop
'si colonne A vide au niveau du compteur, ne rien faire
If Not (IsEmpty(Sheets("Saisie").Range("A" & Lig))) Then
If MsgBox("Attention, la ligne " & Lig & " comporte une erreur." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Veuillez vérifier que l'article existe", vbOKOnly, "Erreur : Code PMI") = vbOK Then
Exit Sub
End If
End If
'compteur ligne jusqu'à erreur code fournisseur
Lig = 3
Do While Not IsError(Sheets("Saisie").Range("H" & Lig))
Lig = Lig + 1
Loop
'si colonne A vide au niveau du compteur, ne rien faire
If Not (IsEmpty(Sheets("Saisie").Range("A" & Lig))) Then
If MsgBox("Attention, la ligne " & Lig & " comporte une erreur." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Veuillez vérifier que le fournisseur existe ou que l'article a été bien renseigné", vbOKOnly, "Erreur : Code Fournisseur") = vbOK Then
Exit Sub
End If
End If
'comptage de la dernière ligne remplie
nbligne = Worksheets("Saisie").Range("A" & Rows.Count).End(xlUp).Row - 2
'Recup data :
'société
Worksheets("Interface").Range("A2:A" & nbligne + 1).Value = "100"
'code art + cc
Worksheets("Interface").Range("D2:E" & nbligne + 1).Value = Worksheets("Saisie").Range("C3:D" & nbligne + 2).Value
'qté commandé
Worksheets("Interface").Range("F2:F" & nbligne + 1).Value = Worksheets("Saisie").Range("E3:E" & nbligne + 2).Value
'code fournisseur
Worksheets("Interface").Range("B2:B" & nbligne + 1).Value = Worksheets("Saisie").Range("H3:H" & nbligne + 2).Value
'ref commande
Worksheets("Interface").Range("C2:C" & nbligne + 1).Value = Format(Day(Date), "00") & "-" & Format(Month(Date), "00") & "-" & Year(Date) & "-" & Format(Time, "hhnnss")
'Libellé 1
Worksheets("Interface").Range("G2:G" & nbligne + 1).Value = Worksheets("Données").Range("D2:D" & nbligne + 1).Value
'Libellé 2
Worksheets("Interface").Range("H2:H" & nbligne + 1).Value = Worksheets("Données").Range("E2:E" & nbligne + 1).Value
'PU
Worksheets("Interface").Range("I2:I" & nbligne + 1).Value = Worksheets("Données").Range("J2:J" & nbligne + 1).Value
'Délai
If nbligne > 1 Then
TDates = Worksheets("Saisie").Range("G3:G" & nbligne + 2)
For i = 1 To UBound(TDates, 1)
TDates(i, 1) = Format(TDates(i, 1), "yyyymmdd")
Next i
Else
Worksheets("Interface").Range("J2") = Worksheets("Saisie").Range("G3")
'Etat stock KB
For i = 2 To nbligne + 1
vert = Sheets("Interface").Range("K" & i).Select
orange = Sheets("Interface").Range("M" & i).Select
rouge = Sheets("Interface").Range("O" & i).Select
With Sheets("Interface")
.FormulaR1C1 = "=XLOOKUP(RC[-7],Données!C[-9],Données!C[1],"""",0)"
End With
stock = Sheets("Saisie").Range("F" & i + 1)
If stock = "V" Then
With Sheets("Interface")
.Range("K" & i) = "V"
.Range("L" & i) = Sheets("Saisie").Range("E" & i + 1)
End With
Else
If stock = "O" Then
With Sheets("Interface")
.Range("M" & i) = "V"
.Range("N" & i) = Sheets("Saisie").Range("E" & i + 1)
End With
Else
If stock = "R" Then
With Sheets("Interface")
.Range("O" & i) = "V"
.Range("P" & i) = Sheets("Saisie").Range("E" & i + 1)
End With
End If
End If
End If
Next
' Sauvegarde du fichier Interface
' Copie la feuille active dans un nouveau fichier
Worksheets("Interface").Copy
' Définition du chemin complet. Pourrait être remonté avec les autres définitions pour plus de lisibilité
Fichier = "\\GI-ERP\Data\100\Cde Four - Import\1 - Cde Achat\EDI INTEGRATION.xlsx"
' Enregistrement du fichier selon le chemin défini
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Fichier
Application.DisplayAlerts = True
' Fermeture du nouveau classeur sans confirmation
Workbooks(2).Close False
'Création du fichier de synchro des états kanban
Call importkb
'Verrouillage des feuilles
For i = 1 To 3
Sheets(i).Protect Password:=123
Next
' Ré-actualisation de l'affichage.
Application.ScreenUpdating = True
' lancement programme Intégration des données
' lancement du BAT
Attente.Show
Wrep = MsgBox("Création de la commande dans PMI", vbOKOnly)
End Sub