XL 2013 Erreur de compilation à l'appel d'un module

Art13

XLDnaute Nouveau
Bonjour, lors de l'appel d'un module un message d'erreur apparait me disant attendue non module mais variable ou procédure attendu
VB:
Sub Cursseur()


Set Cible = Feuil1
Compteur_vide = 0

    Set Start_boucle = ThisWorkbook.ActiveSheet.Cells(2, 1) 'demarrage boucle recup infos
        
    ThisWorkbook.ActiveSheet.Activate 'se placer sur la feuille de l'année en cours
    Start_boucle.Select 'selectionner premiere cellule de recup
    
    For i = 1 To 13
    
        If ActiveCell.Value <> "" Then 'si non vide
            Compteur_vide = 0
            GAMME = ActiveCell.Value
            Selection.Offset(0, 1).Select
            If (ActiveCell.Value <> "") Then
                    Reference = ActiveCell.Value
            Selection.Offset(0, 8).Select
            If (ActiveCell.Value <> "") Then
                    Nom_Produit = ActiveCell.Value
Reference_Produit = Reference
Produit = Nom_Produit
Call Gestion_Stock
            Selection.Offset(1, -9).Select
 

        Else
            Compteur_vide = Compteur_vide + 1
            Selection.Offset(1, -9).Select
            If Compteur_vide = 3 Then
                Exit For
            End If
        End If
        End If
        End If
        Next
        
End Sub
 
Solution
re,

voila votre code modifié, mettant à jour les quantités
les tabulations sont là pour simplifier la lecture du code, je vous conseille d'utiliser ce système ou un autre équivalent pour ordonner et organiser votre code et ainsi en faciliter la lecture et la compréhension

Bien cordialement, @+
VB:
Option Explicit
Option Private Module
'Déclaration variables ***********************
Public GAMME As String 'Fournisseur
Public Nom_Produit As String 'Fournisseur du fichier stock
Public Quantite_Deduite As Integer
Public Cible As Worksheet 'Feuill FOURNISSEUR
Public Reference_Produit As String 'Model pour recherche
Sub Cursseur()
Dim i%, Compteur_vide&, Start_boucle As Range, Cellule_Cherche As Range
Compteur_vide = 0
Set Start_boucle =...
re,

voila votre code modifié, mettant à jour les quantités
les tabulations sont là pour simplifier la lecture du code, je vous conseille d'utiliser ce système ou un autre équivalent pour ordonner et organiser votre code et ainsi en faciliter la lecture et la compréhension

Bien cordialement, @+
VB:
Option Explicit
Option Private Module
'Déclaration variables ***********************
Public GAMME As String 'Fournisseur
Public Nom_Produit As String 'Fournisseur du fichier stock
Public Quantite_Deduite As Integer
Public Cible As Worksheet 'Feuill FOURNISSEUR
Public Reference_Produit As String 'Model pour recherche
Sub Cursseur()
Dim i%, Compteur_vide&, Start_boucle As Range, Cellule_Cherche As Range
Compteur_vide = 0
Set Start_boucle = Cells(2, 1) 'demarrage boucle recup infos
'Start_boucle.Select 'selectionner premiere cellule de recup
For i = 1 To 13
    GAMME = "": Reference_Produit = "": Quantite_Deduite = 0: Nom_Produit = ""
    With Start_boucle.Offset(i - 1, 0)
        If .Value <> "" Then 'si non vide
            Compteur_vide = 0
            GAMME = .Value
            If Not .Offset(0, 1).Value = "" Then
                Reference_Produit = .Offset(0, 1).Value
                Quantite_Deduite = .Offset(0, 2).Value
                If Not .Offset(0, 9).Value = "" Then
                    Nom_Produit = .Offset(0, 9).Value
                Else
                    Compteur_vide = Compteur_vide + 1
                    If Compteur_vide = 3 Then Exit For
                End If
            End If
        End If
    End With
    If Not GAMME = "" Then
        On Error Resume Next
        Set Cellule_Cherche = Nothing
        Set Cellule_Cherche = Sheets("FOURNISSEUR").Range("A:A").Find(What:=Nom_Produit, After:=Range("A1"), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
        If Not Cellule_Cherche Is Nothing Then
            Set Cellule_Cherche = Cellule_Cherche.MergeArea.EntireRow.Find(What:=Reference_Produit, After:=Cellule_Cherche, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
            If MsgBox("Voulez vous déduire la quantité : " & Quantite_Deduite & vbLf & Nom_Produit & vbLf & Cellule_Cherche.Value & vbLf & "Stock : " & Cellule_Cherche.Offset(0, 1).Value, vbYesNo + vbQuestion) = 6 Then Cellule_Cherche.Offset(0, 1).Value = Cellule_Cherche.Offset(0, 1).Value - Quantite_Deduite
        End If
        On Error GoTo 0
    End If
Next i
End Sub
 

Art13

XLDnaute Nouveau
re,

voila votre code modifié, mettant à jour les quantités
les tabulations sont là pour simplifier la lecture du code, je vous conseille d'utiliser ce système ou un autre équivalent pour ordonner et organiser votre code et ainsi en faciliter la lecture et la compréhension

Bien cordialement, @+
VB:
Option Explicit
Option Private Module
'Déclaration variables ***********************
Public GAMME As String 'Fournisseur
Public Nom_Produit As String 'Fournisseur du fichier stock
Public Quantite_Deduite As Integer
Public Cible As Worksheet 'Feuill FOURNISSEUR
Public Reference_Produit As String 'Model pour recherche
Sub Cursseur()
Dim i%, Compteur_vide&, Start_boucle As Range, Cellule_Cherche As Range
Compteur_vide = 0
Set Start_boucle = Cells(2, 1) 'demarrage boucle recup infos
'Start_boucle.Select 'selectionner premiere cellule de recup
For i = 1 To 13
    GAMME = "": Reference_Produit = "": Quantite_Deduite = 0: Nom_Produit = ""
    With Start_boucle.Offset(i - 1, 0)
        If .Value <> "" Then 'si non vide
            Compteur_vide = 0
            GAMME = .Value
            If Not .Offset(0, 1).Value = "" Then
                Reference_Produit = .Offset(0, 1).Value
                Quantite_Deduite = .Offset(0, 2).Value
                If Not .Offset(0, 9).Value = "" Then
                    Nom_Produit = .Offset(0, 9).Value
                Else
                    Compteur_vide = Compteur_vide + 1
                    If Compteur_vide = 3 Then Exit For
                End If
            End If
        End If
    End With
    If Not GAMME = "" Then
        On Error Resume Next
        Set Cellule_Cherche = Nothing
        Set Cellule_Cherche = Sheets("FOURNISSEUR").Range("A:A").Find(What:=Nom_Produit, After:=Range("A1"), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
        If Not Cellule_Cherche Is Nothing Then
            Set Cellule_Cherche = Cellule_Cherche.MergeArea.EntireRow.Find(What:=Reference_Produit, After:=Cellule_Cherche, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
            If MsgBox("Voulez vous déduire la quantité : " & Quantite_Deduite & vbLf & Nom_Produit & vbLf & Cellule_Cherche.Value & vbLf & "Stock : " & Cellule_Cherche.Offset(0, 1).Value, vbYesNo + vbQuestion) = 6 Then Cellule_Cherche.Offset(0, 1).Value = Cellule_Cherche.Offset(0, 1).Value - Quantite_Deduite
        End If
        On Error GoTo 0
    End If
Next i
End Sub
je regarde est analyse t je revient vers vous si fonctionnel j'insiste transmet tes moi vos infos et je vous envoie un bouteille de parfum cadeau cela me fait plaisir
 

Art13

XLDnaute Nouveau
Re,
cela marche merci beaucoup je v maintenant ajouté la fonction génération de feuil en PDF pour faire une facture pour les clients.

Transmettais moi les infos pour que je vous envoie une bouteille de parfum cela me fait plaisir.
 
Re,

je regarde est analyse t je revient vers vous si fonctionnel j'insiste transmet tes moi vos infos et je vous envoie un bouteille de parfum cadeau cela me fait plaisir
Tentative de corruption de modérateur ! 🤣

ne vous inquiétez pour cela, marquer la solution pour les recherches d'autres personnes et un merci seront largement suffisants. 😉

Bonne soirée
 
re,
la génération du Pdf doit se faire à la fin de la boucle
si vous avez toutes les infos, oui
si vous rencontrez des problèmes, ouvrez une nouvelle discussion car cela n'aura plus rien à voir avec le sujet de ce fil.
n'hésitez pas à lire la charte XLD pour bien connaitre les us et coutumes du forum, notamment, le langage SMS est à proscrire.

Bien cordialement, @+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 174
Membres
112 677
dernier inscrit
Justine11