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 :

Fonction range dans autofill [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 114
    Par défaut Fonction range dans autofill
    Bonjour,
    J'aimerais appliqué une formule a toute ma colonne X2 ( en X1 il y a le titre de ma colonnes)
    Mais il y a un problème quand je met "X2:X", le X pose problème il faudrait que je mette une constante. Mais je ne sait pas au préalable combien de ligne peut comporter mon dossier.
    Il faudrait donc que ma formule s'applique a toute ma colonne a partir de X2.
    Si quelqu'un sait comment je peut faire sans selectionné une constante infini pour qu'il me prenne tout

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Range("X2").Select
        ActiveCell.FormulaR1C1 = _
            "=VLOOKUP(RC[-23],'[suividep 102013.xls]Feuil1'!R1:R65536,7,FALSE)"
        Range("X2").Select
        Selection.AutoFill Destination:=Range("X2:X"), Type:=xlFillDefault
        Range("X2:X").Select

    Cordialement
    PS je suis sur excel 2007

  2. #2
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 421
    Par défaut
    salut, tout d'abord , je ne suis pas un expert.

    si je comprend bien ton probleme, tu à une formule de recherche de valeur dans une colonne, et tu souhaites la recopier jusqu'à la derniere ligne de ta colone "x".

    moi, en générale je commence par compter le nombre de ligne de mon tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim NbLigne As Long
    NbLigne = Range("A1").End(xlDown).Row
    ensuite, j'essairais quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("X2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-23],'[suividep 102013.xls]Feuil1'!R1:R65536,7,FALSE)"
    Range("X2:X2").Select
    Selection.AutoFill Destination:=Range("X2:X" & NbLigne)
    une partie du code est issu de l'enregistreur de macro, mais chez moi sa marche. dis moi si ça coince, et sinon, attend de voir les autres réponses probablement plus pertinantes que ma proposition.

  3. #3
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut fonction range dans autofill
    bonjour YoYo,

    comme toi malgré mes 600 et quelques points je connais peu de choses en VBA.

    ta proposition me parait bien.
    Par contre, la formule du demandeur est discutable. Sauf si le fichier de recherche comprend effectivement 65536 lignes renseignées pourquoi prolonger la recherche au delà. personnellement je donne toujours un nom limité à son nombre de lignes au fichier de recherche

    cordialement.

  4. #4
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 421
    Par défaut
    il peut tout a fait préciser dynamiquement les limites de sa matrice en ayant préalablement compter le nombre de ligne de celle ci avec la même méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim NbLignematrice As Long
    NbLignematrice = Range("A1").End(xlDown).Row
    'en précisant avant le range("A1"), le nom de la feuille contenant la matrice
    
    Dim NbLigne As Long
    NbLigne = Range("A1").End(xlDown).Row 
    
    Range("X2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-23],'[suividep 102013.xls]Feuil1'!R1:R" & NbLignematrice &",7,FALSE)"
    Range("X2:X2").Select
    Selection.AutoFill Destination:=Range("X2:X" & NbLigne)
    j'ai juste un doute sur la syntaxe du VLOOKUP ...RC avec un nom de variable

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Zi ze peu me permettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NbLigne = Range("A" & rows.count).End(xlup).Row

  6. #6
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 421
    Par défaut
    mais il vous en prie...
    question c'est quoi la différence avec ma méthode?

  7. #7
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut fonction range dans autofill
    Bonjour Engue Engue,

    Ta qualification t'y autorise d'autant que ta formulation est en effet préférable au cas où il y aurait une ligne vide intentionnelle ou pas.

    cordialement.

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

Discussions similaires

  1. Fonction qui récupère l'adresse d'une plage/Range dans une variable
    Par Bastien06 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/11/2012, 11h35
  2. [XL-2003] pb range dans fonction sum
    Par bebel9313 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/08/2009, 09h37
  3. Fonction Find dans un "Range" ?
    Par Calimero06 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/06/2008, 09h47
  4. Parametre Range dans une fonction
    Par nox1492 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/11/2007, 20h53
  5. Utiliser une fonction excel dans une macro et proprièté range
    Par bebel9313 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/08/2007, 14h25

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