Erreur Objet requis

Bonjour, je débute en VBA, c'est ma deuxième demande déjà avec un mois d'interval.

J'ai un code qui fais appel a un fichier qui à été fais par quelqu'un d'autre mais lorsque je le lance il me dit "Erreur objet requis" il n'y a même pas de code erreur type "404 not found"

Voilà j'aimerai savoir si vous voyez ou est l'erreur étant un padawan je ne la trouve absolument pas et la personne en charge ,à l'époque de ce projet est partie et je dois modifier le code, mais comment modifier un code si on n'arrive même pas à le faire fonctionner??

' Repart BUT
'
' Ajout des commande systématique à un export ABUT
'
' Ver 0.1
'
'   1.1 - Ajout gestion 1, 2 ou 3 modèles
Sub Repart()

Dim Export As String
Dim syst As String
Dim current As String

current = ThisWorkbook.Name

'on ouvre le fichier de commande systématique et on le mets à jour
syst = Application.GetOpenFilename("Classeurs Excel (*.xls), *.xls", 1, "Choisir le fichier le fichier de commande systematique", , False)

Workbooks.Open Filename:=syst
syst = ActiveWorkbook.Name

Dim monid, op, mod1, mod2, mod3 As String
Dim Lignefin, I, LigMag, macol As Integer
Dim magasin As String
RepartForm.Show
op = RepartForm.OPForm.Value
mod1 = RepartForm.mod1form.Value
mod2 = RepartForm.mod2form.Value
mod3 = RepartForm.mod3form.Value

If mod2 = "" And mod3 = "" Then
    nbre = 1
ElseIf mod3 = "" Then
    nbre = 2
Else
    nbre = 3
End If

' rechercher remplacer les op, les modeles et les date de fin d op
macol = NumCol("Nom du produit")

If nbre = 1 Then
    Worksheets("MATRICE 1 MODELE").Activate
    Columns(macol).Replace What:="MODELE1", Replacement:=mod1, LookAt:=xlPart
    masheet = "MATRICE 1 MODELE"
End If
If nbre = 2 Then
    Worksheets("MATRICE 2 MODELES").Activate
    Columns(macol).Replace What:="MODELE1", Replacement:=mod1, LookAt:=xlPart
    Columns(macol).Replace What:="MODELE2", Replacement:=mod2, LookAt:=xlPart
    masheet = "MATRICE 2 MODELES"
End If
If nbre = 3 Then
    Worksheets("MATRICE 3 MODELES").Activate
    Columns(macol).Replace What:="MODELE1", Replacement:=mod1, LookAt:=xlPart
    Columns(macol).Replace What:="MODELE2", Replacement:=mod2, LookAt:=xlPart
    Columns(macol).Replace What:="MODELE3", Replacement:=mod3, LookAt:=xlPart
    masheet = "MATRICE 3 MODELES"
End If

Columns(macol).Replace What:="XXX", Replacement:=op, LookAt:=xlPart

'on retire les double espace dans les magasins
macol = NumCol("Acheteur")
Columns(macol).Replace What:="  ", Replacement:=" ", LookAt:=xlPart
Columns(macol).Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(1, macol).Value = "A/F/C"
macol = NumCol("Acheteur")
' on construit le numéro de commande avec recherche du code magasin
' on ajoute la date dans la colonne Date de la commande
Lignefin = Application.WorksheetFunction.CountA(Columns(macol))
monid = 1
For I = 2 To Lignefin
    magasin = Cells(I, macol).Value
    magasin = Replace(magasin, "_A", "")
    magasin = Replace(magasin, "_F", "")
    Workbooks(current).Activate
    Sheets("Magasins").Activate
    LigMag = NumLig(magasin)
    If LigMag = 0 Then LigMag = 1
    magasin = Cells(LigMag, 1)
    Workbooks(syst).Activate
    Sheets(masheet).Activate
    Cells(I, 1).Value = "OP" & op & magasin & "SYS" & monid
    macol = NumCol("Date de la commande")
    Cells(I, 2).Value = DateValue(Now)
    monid = monid + 1
Next

Dim LaCol As Integer
Dim LigneF As Long, NouvLig As Long
Dim Wbk As Workbook
Dim Sh As Worksheet

With Workbooks(syst).Worksheets(masheet)           'choix de la feuille
    macol = NumCol("Acheteur")
    LigneF = .Cells(.Rows.Count, macol).End(xlUp).Row
    ' On ouvre le fichier B et on y ajoute les ligne de A après l'avoir nettoyé
    Export = Application.GetOpenFilename("Classeurs Excel (*.xls), *.xls", 1, "Choisir le fichier d export", , False)
        Set Wbk = Workbooks.Open(Export)
        Set Sh = Wbk.Worksheets(1)

        ' On efface les colonnes prix, prix unitaire
        Sh.Columns(NumCol("prix")).Delete
        Sh.Columns(NumCol("prix unitaire")).Delete
        'On ajoute la colonne A/F/C
        macolone = NumCol("Acheteur")
        Columns(macolone).Select
        Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        Cells(1, macolone).Value = "A/F/C"

        'on ajoute les lignes du fichier A à la fin du fichier B
        LaCol = NumCol("Numéro de la commande")
        NouvLig = Sh.Cells(Sh.Rows.Count, LaCol).End(xlUp).Row + 1
        .Rows("2:" & LigneF).Copy Sh.Range("A" & NouvLig)
        Set Sh = Nothing
        Set Wbk = Nothing

End With

macol = NumCol("Acheteur")
'On rempli la colonne A/F/C
Lignefin = Application.WorksheetFunction.CountA(Columns(macol))
For I = 2 To Lignefin
    magasin = Cells(I, macol)
    If Left(magasin, 5) = "BUT-A" Then
        Cells(I, macol - 1).Value = "A"
    ElseIf Left(magasin, 5) = "BUT-F" Then
        Cells(I, macol - 1).Value = "F"
    Else
        Cells(I, macol - 1).Value = "Centrale"
    End If
Next
Columns(macol).Replace What:="-A", Replacement:="", LookAt:=xlPart
Columns(macol).Replace What:="-F", Replacement:="", LookAt:=xlPart

dercol = NumCol("Code postal de la facture")
macol = NumCol("Société de la facture")
For I = dercol To macol Step -1
    Columns(I).Delete
Next
SourceSheet = ActiveSheet.Name
colProd = NumCol("Nom du produit")
colQuant = NumCol("Qté commandée")
Cells.Select
Cells.EntireColumn.AutoFit
Lignefin = Application.WorksheetFunction.CountA(Columns(NumCol("Acheteur")))
Sheets.Add.Name = "Recap"
Cells(1, 1).Value = "Produit"
Cells(1, 2).Value = "Quantité"
For I = 2 To Lignefin
    Sheets(SourceSheet).Activate
    leProduit = Cells(I, colProd)
    laQuantite = Cells(I, colQuant)
    Sheets("Recap").Activate
    laLigne = NumLig1(leProduit)
    If laLigne = O Then
        LaFin = Application.WorksheetFunction.CountA(Columns(1))
        Cells(LaFin + 1, 1).Value = leProduit
        Cells(LaFin + 1, 2).Value = laQuantite
    Else
        Cells(laLigne, 2).Value = Cells(laLigne, 2).Value + laQuantite
    End If
Next
Cells.Select
Cells.EntireColumn.AutoFit

Dim Nom As String
Dim today As String

Application.DisplayAlerts = False
Workbooks(syst).Close
today = Replace(DateValue(Now), "/", "_")
Path = "C:\ResultatsMacros\"
If Len(Dir(Path, vbDirectory)) = 0 Then
    MkDir (Path)
End If
Nom = Path & "REPART_" & op & "_" & today & ".xls"
ActiveWorkbook.SaveAs (Nom)
Application.DisplayAlerts = True
Fin:
MsgBox ("Traitement terminé")
End Sub

Public Function NumCol(Texte As String) As Integer
On Error GoTo ErrNumCol
NumCol = Rows(1).Find(Texte, LookIn:=xlFormulas, LookAt:=xlWhole, SearchFormat:=False).Column
Exit Function
ErrNumCol:
    NumCol = 0
End Function
Public Function NumLig(Texte) As Integer
On Error GoTo ErrNumLig
NumLig = Columns(2).Find(Texte, LookIn:=xlFormulas, LookAt:=xlWhole, SearchFormat:=False).Row
Exit Function
ErrNumLig:
    NumLig = 0
End Function
Public Function NumLig1(Texte) As Integer
On Error GoTo ErrNumLig1
NumLig1 = Columns(1).Find(Texte, LookIn:=xlFormulas, LookAt:=xlWhole, SearchFormat:=False).Row
Exit Function
ErrNumLig1:
    NumLig1 = 0
End Function

Merci de votre aide !!!!

Bonjour,

sur quelle instruction as-tu l'erreur ?

Eh bien il y a juste un pop-up qui apparait en disant le message d'erreur et lorsque je clique ok rien ne se passe sa affiche mon fichier comme si il l'avait traité mais ce n'est pas le cas !

Edit: Il vient de m'afficher le débogage et c'est la ligne "Repartform.show"

bonjour,

vérifie que le userform "repartform" existe bien

Excusez moi du temps ... J'étais partis en formation et avait complètement oublier ca!

Comment ca vérifier? C'est sensé etre une autre maccro ou une page ?

bonsoir,

c'est censé être un userform

faire alt-F11 pour ouvrir l'editeur VBA

vérifier la présence du userform repartform

Je ne vois absolument pas de quoi vous parlez si je vous transmet les fichiers nécessaires vous pensez que vous pourriez me montrer ?

J'ai besoin de le faire fonctionner et je n'y arrive absolument pas !

Rechercher des sujets similaires à "erreur objet requis"