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 :

La méthode Range de l'objet "_Global" a échoué (1004)


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut La méthode Range de l'objet "_Global" a échoué (1004)
    Bonjour,

    Je suis en train de convertir une macro Excel 4 en VBA sous Excel 2019 Mac.
    Si tout se passe à peu près bien, je bute sur un cas que je n'arrive pas à résoudre. Alors je fais appel aux experts ...
    J'ai un classeur "AmacesbwNewX.xlsm" qui comporte trois onglets ("Accueil" avec les boutons d'appels aux macros, "Macesbe" qui est la macro elle-même, "Param" qui contient des valeurs utiles). Au lancement plusieurs classeurs sont ouverts (et restent masqués), par exemple "FCommand.xlsx" qui est un fichier avec un seul onglet "Commandes". Dans cet onglet, plusieurs plages sont nommées "BasFcom", "ColCli" ... etc. Je souhaite à partir de boites de dialogue, alimenter cette base de commandes.
    Malheureusement je n'arrive pas à accèder à ces plages nommées et j'ai toujours ce fameux message d'erreur 1004 (voir titre). L'erreur apparait sur la ligne en rouge. J'ai essayé avec "With Worksheets("Commandes") ou "With Worksheets(1) ou encore directement avec "With Range("BasFCom") directement sans succès.
    Alors si une brave âme pouvait m'indiquer où je foire .... je lui serais très reconnaissant. Voir ci dessous une partie du code utilisé.
    Merci pour votre aide

    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
    Sub RempComm()
    
    Dim DerLigneC As Integer
    Dim NumligC As Integer, NumColC As Integer
    Dim NbLigC As Integer, NbColC As Integer
    Dim NumColFac As Integer
    Dim NumColCli As Integer
    Dim NumColNoBL As Integer
    Dim NumColDaBL As Integer
    
    Dim sh0 As Worksheet
    Dim sh1 As Worksheet
    Dim sh2 As Worksheet
    
    Dim xWbC As Workbook
    Dim xNameStringC As String
    Dim xnameC As Name
    
    Set sh0 = ActiveWorkbook.Sheets("Accueil")
    Set sh1 = ActiveWorkbook.Sheets("MacEsbe")
    Set sh2 = ActiveWorkbook.Sheets("Param")
    
    Workbooks("FCommand.xlsx").Activate
    Set sh0C = ActiveWorkbook.Sheets(1)
    
    'With Worksheets("Commandes")
    With Range("BasFCOM")
    
    'Récupération de la ligne et colonne de gauche de la base BasFCom
    'Récupération du nombre de lignes et de colonnes de la base BasFCom
        NumligC = Range("BasFCom").Row
        NumColC = Range("BasFCom").Column
        NbLigC = Range("BasFCom").Rows.Count
        NbColC = Range("BasFCom").Columns.Count
    'Récupération du numéro de colonne des plagesVéhNom, VéhImm et VéhClé
    'le numéro de ligne de ces plages est égal à celui de BasFCom + 1 (sous la ligne titre)
    'le nombre de lignes de ces colonnes nommées est égal à celui de BasFCom -1 (pas de ligne titre)
        NumColFac = Range("ColFact").Column
        NumColCli = Range("ColCli").Column
        NumColNoBL = Range("ColNoBL").Column
        NumColDaBL = Range("ColDateBL").Column
    
    End With
    
    .......
    
    End Sub

  2. #2
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par ReneGuyMartin Voir le message
    ..... Au lancement plusieurs classeurs sont ouverts (et restent masqués), par exemple "FCommand.xlsx" qui est un fichier avec un seul onglet "Commandes". .....
    Mon problème vient-il du fait que le classeur "FCommand.xlsx" est masqué ?
    Car si j'affiche ce classeur, j'arrive bien à accèder aux plages nommées souhaitées mais j'aimerais que les classeurs masqués restent masqués.

  3. #3
    Membre habitué
    Homme Profil pro
    Gestionnaire de projet dans le BTP
    Inscrit en
    Janvier 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Gestionnaire de projet dans le BTP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2017
    Messages : 86
    Points : 134
    Points
    134
    Par défaut
    Cette erreur survient souvent quand Excel "ne sais plus ou il habite", et il ne trouve pas le Range.
    Essaye de mettre les points sur les i un peu comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        NumligC = Workbooks("FCommand.xlsx").Worksheets("Commandes").Range("BasFCom").Row
    Pour l'exemple, voici une formule qui m'a donnée bien du fil à retordre avant de trouver la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Set Plage1 = FeuillePasseL01.Range(FeuillePasseL01.Cells(5, 1), FeuillePasseL01.Cells(200, 1))

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Merci Doatyn, je vais essayer ça, mais il est certain que plus on "précise" plus on a de chances de réussir.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/01/2009, 11h06
  2. 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: 18/09/2008, 23h05
  3. erreur La méthode 'Range' de l'objet '_Global' a échoué
    Par mahboub dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/11/2006, 20h46
  4. [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, 16h00
  5. Réponses: 4
    Dernier message: 20/01/2006, 15h53

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