IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA: erreur "la méthode range de l'objet worksheet a échoué" [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Points : 42
    Points
    42
    Par défaut VBA: erreur "la méthode range de l'objet worksheet a échoué"
    Bonjour,

    Je suis en train de concevoir une macro qui me permet de mettre à jour une feuille d'un classeur Excel à partir de plusieurs autres classeurs, qui seront sélectionnés par l'utilisateur.

    J'ai un souci au moment où je lui demande de faire de la recopie de valeur de cellule " If S.Range("H" & cpt2).Value = itm8 Or (S.Range("R" & cpt2).Value = RD And S.Range("Q" & cpt2).Value = Order) Then" j'obtiens le message d'erreur "la méthode range de l'objet worksheet a échoué"

    En cherchant sur le forum d'où cela pourrait provenir, il semblerait qu'il faille activer la feuille de travail mais même avec cela, ça ne fonctionne pas.


    Pourriez-vous m'aider svp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    Sub scalog_2016()
     
        Dim FichiersImport
        Dim ClasseurCourant As Workbook
        Dim IFichier As Integer
        Dim ClasseurImport, StockBIM As Workbook
        Dim FeuilleImport, SV As Worksheet
        Dim Nb_import As Integer
        Dim S As Worksheet
        Dim cpt, ctp2, itm8 As Long
     
        dateJ = Date
        dateYYYY = Right(dateJ, 4)
        dateMM = Left(Right(dateJ, 7), 2)
        dateDD = Left(dateJ, 2)
        dateFic = dateYYYY & dateMM & dateDD
     
     
     
        Nb_import = 1
        Set ClasseurImport = Workbooks.Open(Filename:="I:\Commun COMI - ITMAF\SCALOG 2016 SEC.xlsx")
        Set FeuilleImport = ClasseurImport.Sheets(2)
        FichiersImport = Application.GetOpenFilename("Fichiers Excel, *.xls; *.xlsx; *.xlsm", , "Sélectionnez les fichiers SCALOG à importer", , True)
     
     
     
        Application.Calculation = xlCalculationManual
        For IFichier = LBound(FichiersImport) To UBound(FichiersImport)
     
            Set ClasseurCourant = Application.Workbooks.Open(FichiersImport(IFichier), , True)
            ClasseurCourant.Activate
     Stop
            For Each S In ClasseurCourant.Worksheets
     
                    S.Activate
     
                     If S.AutoFilterMode = True Then S.AutoFilterMode = False
                     S.Cells.EntireColumn.Hidden = False
                     S.Cells.EntireRow.Hidden = False
     
     cpt = 3
     
      Stop
       Do
     
         RD = FeuilleImport.Range("Y" & cpt).Value
         itm8 = FeuilleImport.Range("O" & cpt).Value
         Order = FeuilleImport.Range("X" & cpt).Value
     
             Do
                If S.Range("H" & cpt2).Value = itm8 Or (S.Range("R" & cpt2).Value = RD And S.Range("Q" & cpt2).Value = Order) Then
                   FeuilleImport.Range("AH" & cpt2).Value = S.Range("AA" & cpt2).Value
                   FeuilleImport.Range("AI" & cpt2).Value = S.Range("AB" & cpt2).Value
                   FeuilleImport.Range("AJ" & cpt2).Value = S.Range("AC" & cpt2).Value
                   FeuilleImport.Range("AK" & cpt2).Value = S.Range("AD" & cpt2).Value
                   FeuilleImport.Range("AL" & cpt2).Value = S.Range("AE" & cpt2).Value
                End If
                cpt2 = cpt2 + 1
     
             Loop While Inv.Sheets(1).Range("H" & cpt2).Value <> ""
     
             cpt = cpt + 1
     
       Loop While Inv.Sheets(1).Range("H" & cpt).Value <> ""
     
     
            Next S
     
     
            ClasseurCourant.Close SaveChanges:=False
     
        Next IFichier

  2. #2
    Expert confirmé Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Points : 4 299
    Points
    4 299
    Par défaut
    Salut,

    je pense que c'est dû au fait que tu n'ai pas initialisé ta variable CP2 avant de l'utiliser.
    du style
    Si tu n'initialise pas ta variable, elle est à 0.Et un range("H0").value ... c'est pas bon.

  3. #3
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Points : 42
    Points
    42
    Par défaut
    Merci Jérôme !

    Quelle erreur de débutant ..... (bon ce qui est mon cas )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Méthode range de l'objet worksheet a échoué
    Par magikmed dans le forum Excel
    Réponses: 5
    Dernier message: 22/07/2015, 16h13
  2. Réponses: 3
    Dernier message: 23/04/2014, 10h25
  3. [XL-2007] erreur: "la méthode .Range de l'objet worksheet a échoué"
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 28/10/2010, 10h08
  4. Erreur 1004: La méthode "Range" de l'objet "_global" a échoué
    Par Froggy007 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 19/09/2008, 00h05
  5. [VBA-E]La méthode 'Range' de l'objet '_Global' a échoué
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/02/2006, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo