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 :

Echec Autofill sur Range [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Echec Autofill sur Range
    Bjr,
    j'applique la méthode à partir d'une sélection :
    - si elle comporte plusieurs lignes, pas de pb,
    - si ma sélection ne contient qu'une seule ligne, ca plante (ERR 1004: la méthode de la classe Range a échoué)

    Dans mon exemple suivant, si NbrIndivi=2 ca plante, si NbrIndivi>2 c'est OK :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("W2").Select
        ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-16],"","",RC[-14])"
        Selection.AutoFill Destination:=Range("W2:W" & NbrIndivi), Type:=xlFillDefault
    A priori, y'aurait 1 souci sur la Destination si le Range porte sur 1 seule cellule et non pas une plage? quelle solution pour résoudre mon pb ?

    NB : la destination est en fonction de ma selection préalable, qui peut varier d'une à plusieurs lignes, et qui se traduit par 1 cellule ou 1 plage.

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 389
    Points : 437
    Points
    437
    Par défaut
    Bonjour,

    NbrIndivi=2 ca plante, si NbrIndivi>2 c'est OK
    quand NbrIndivi=2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Destination:=Range("W2:W" & NbrIndivi)
    devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Destination:=Range("W2:W2")
    ce qui n'est pas normal puisque la destination se fait sur elle-même

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Compléments d'infos :
    Effectivement cela mérite plus de détails :

    je créé d'abord un filtre auto sur la colonne A (qui me rend 1 ou plusieurs lignes = NbrIndivi).
    Ensuite j'applique ma formule en W2 portant sur 1 concaténation de 2 autres cellules en G2 & I2 (nom & prenom).
    Puis la destination est en fonction de mon filtre:
    - si j'ai plusieurs individus, la concatenation s'incremente bien,
    - si je n'ai qu'1 seul individu, ca ne marche plus.

    Comment peut on faire ?
    merci.

  4. #4
    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
    if NbrIndivi>2 then range("w2").AutoFill Destination:=Range("W2:W" & NbrIndivi)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Re: Echec Autofill sur Range
    si NbrIndivi>2,la concatenation s'incremente bien
    mais
    si NbrIndivi=2, c'est la que ca pose pb !

    Cdlt.

  6. #6
    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
    if NbrIndivi>1 then range("w2").AutoFill Destination:=Range("W2:W" & NbrIndivi+1)

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Re: Echec Autofill sur Range
    merci pour les infos,
    mais le test if ne distingue pas le cas NbrIndivi = 2 qui plante du cas NbrIndivi >2.
    Après recherches, un semblant de solution apparait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Plage = "W2:W" & NbrIndivi
    If NbrIndivi = 2 Then Plage = "W1:W" & NbrIndivi
        Selection.AutoFill Destination:=Range(Plage)

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

Discussions similaires

  1. [XL-2010] Autofill sur un objet range
    Par rinada dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/03/2013, 00h08
  2. [XL-2007] Autofill sur range incluant offset
    Par mickey89 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/01/2013, 11h17
  3. [EXCEL 2003] Echec autofill sur la classe range
    Par buhrne dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2008, 17h03
  4. Echec gravure sur Nero
    Par orion23 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 29/08/2007, 11h47
  5. propriété Count sur Range
    Par pierrOPSG dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2006, 23h36

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