Erreur dans ma macro

bonjour

un membre de ce forum m'a fait une macro mais il ne reponds plus actuellement donc si quelqu'un pouvait jetter un oeil ce serait super!, en H je dois attribuer une categorie a chaque article mais comme beaucoup d'articles sont commun dans les autres onglets j'aimerais le taper qu'une fois, donc quand je vais par exemple ecrire ACCESOIRES en G de l'onglet ACA sur la ligne 13 ref 002523 ACCESOIRES devra s'ecrire egalement dans tous les onglets qui possedent la ref 002523 et j'ai une erreur a ce moment la, la fenetre de la macro s'ouvre et la ligne " iAvanc = 1" est surlignee en bleu

apparement cela fonctionne chez le membre qui m'a aide auparavent mais pas chez moi (je suis sur excel 2007 lui etait sur 2010 peut etre que l'erreur viendrait de la?)

le fichier est a cette adresse: https://www.cjoint.com/c/GCtpMGG6bXM

merci d'avance

phil

bonjour,

dans le fichier tel que tu nous l'as fourni, la macro n'a jamais pu fonctionner.

modifie le code the thisworkbook avec ceci

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    Dim oSh As Worksheet
    Dim oRange As Range
    Dim iAvanc As Long

    If Target.Column = 8 Then 'modif en colonne H

        iAvanc = 1

        Application.EnableEvents = False 'sinon ça va boucler !

        'recherche dans tous les onglets
        For Each oSh In Worksheets

            modProgress.ShowProgress iAvanc, Worksheets.Count, "Mise à jour en cours"

            If oSh.Name <> "weight" And oSh.Name <> "prices" And oSh.Name <> "MAJ" _
            And oSh.Name <> Sh.Name Then

                Set oRange = oSh.Cells.Find(What:=Sh.Range("A" & Target.Row), After:=ActiveCell, LookIn:=xlValues, LookAt _
                    :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
                    False, SearchFormat:=False)

                If Not oRange Is Nothing Then
                    'MsgBox oSh.Name & vbCrLf & oRange.Address, vbExclamation
                    oSh.Range("H" & oRange.Row).Value = Target.Value
                End If

                Set oRange = Nothing
            End If

            iAvanc = iAvanc + 1

        Next oSh

        Application.EnableEvents = True

    End If

End Sub

Super ca fonctionne mais je n'ai pas vu ce qui a ete modifie, eclaire moi que je soit un peu plus malin ce soir !!

phil

Bonjour,

tu as mis option explicit dans ton code ce qui implique que toutes tes variables doivent être definies avec une instruction Dim.

il manquait une instruction Dim pour la variableiAvanc

ok merci bien

Rechercher des sujets similaires à "erreur macro"