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-Pb d'erreur 1004 après avoir défini un nom pour une plage [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 66
    Points : 52
    Points
    52
    Par défaut VBA-Pb d'erreur 1004 après avoir défini un nom pour une plage
    Bonsoir à tous,

    Pour situer les choses, voici ma démarche :
    1 - J'ai une feuille 'TOTO' qui comporte une plage A4:Axxx nommée 'XXX' de façon dynamique sur la colonne A.
    2 - Je souhaite mettre à jour ma feuille 'TOTO' avec des données externes.
    3 - Donc provisoirement je duplique (en dernière position) ma feuille 'TOTO' que je renomme 'SV_TOTO' au passage.
    4 - Je vide ma feuille 'TOTO' de ses données (sauf les lignes d'entête de colonnes).
    5 - J'importe mes nouvelles données dans la feuille 'TOTO'
    6 - Comme tout s'est bien passé, je supprime la feuille de sauvegarde 'SV_TOTO'
    7 - Pour finir, je supprime le nom attribué à ma plage A4:Axxx et je le recrée avec le même nom 'XXX' et avec la même référence dynamique à la plage.

    Mon problème survient avec une belle erreur 1004 lorsque je recrée le nom 'XXX'.
    Je tourne en rond et ne voit pas où se trouve mon erreur. Aussi j'en appelle à vous pour bien vouloir SVP m'aider à corriger cela.
    MERCI d'avance.

    Je colle ci-après le code épuré qui me pose problème. :
    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
    ....
    ' On sauvegarde le catalogue courant en dupliquant l'onglet correspondant
    wsFeuilleCatIPD.Copy after:=wbFichierRLS.Worksheets(Worksheets.Count)
    Set wsSV_CatIPD = wbFichierRLS.Worksheets(Worksheets.Count)
    wsSV_CatIPD.Name = "SV_CatIPD"
    ' On vide le catalogue courant de son contenu sauf la ligne de titre des colonnes
    wsFeuilleCatIPD.Activate
    lDerniereLigneCat = wsFeuilleCatIPD.Range("A1").SpecialCells(xlCellTypeLastCell).Row
    wsFeuilleCatIPD.Rows("4:" & lDerniereLigneCat).EntireRow.Delete
    .....
    ' Ma procédure d'import de données ...
    ....
    ' On supprime la feuille de sauvegarde du catalogue IPD
    wsSV_CatIPD.Delete
    ' On rétabli les plages nommées associées à la feuille 'CatIPD'
    wbFichierRLS.Names("CIPD_NoCAT").Delete ' On supprime d'abord le nom 'CIPD_NoCAT'
    ' On recrée la plage nommée 'CIPD_NoCAT'
    wbFichierRLS.Names.Add Name:="CIPD_NoCAT", _
        RefersTo:="=DECALER(CatIPD!$A$4;;;NBVAL(CatIPD!$A:$A);1)"
    ....C'est sur cette dernière ligne que le code "plante" avec l'erreur n°1004.

    Cordialement
    oracle7556

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    refersto:="=offset(CatIPD!$A$4,,,counta(CatIPD!$A4:$A65536),1)"
    ou autrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LastLig = sheets("CatIPD").cells(rows.count, "A").end(xlup).row
    wbFichierRLS.Names.Add Name:="CIPD_NoCAT",refersto:="=CatIPD!$A$4:$A$" & LastLig
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 66
    Points : 52
    Points
    52
    Par défaut
    Bonjour mercatog

    Merci de ta réponse. Ta première solution marche impeccablement : je la retiens donc et considère le sujet résolu.

    Merci encore de ton aide.

    Cordialement
    oracle7556

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/02/2014, 16h45
  2. erreur sql aprés avoir regénérer les entities&DAOS
    Par safa baccouche dans le forum JPA
    Réponses: 0
    Dernier message: 03/09/2010, 05h59
  3. Réponses: 6
    Dernier message: 22/01/2008, 21h06
  4. Réponses: 3
    Dernier message: 10/10/2007, 12h43
  5. [VBA-E]Peut on avoir l'equivalent .controls pour une feuille
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/03/2007, 18h06

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