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

Excel Discussion :

[VBA]Comment étendre un résultat jusqu'à la fin d'une colonne


Sujet :

Excel

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [VBA]Comment étendre un résultat jusqu'à la fin d'une colonne
    Bonjour,

    Ci-dessous la macro que je viens de créer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub ZONE()
    '
    ' ZONE Macro
    ' Macro enregistrée le 02/05/2007 par xxxxxx
    '
     
    '
        Range("C2").Select
        ActiveCell.FormulaR1C1 = _
            "=VLOOKUP(C[-1],[Zone_OA.xls]zone!R2C1:R248C3,3,FALSE)"
        Selection.AutoFill Destination:=Range("C2:C1641")
        Range("C2:C1641").Select
    End Sub
    Cela fonctionne très bien lorsque mon fichier à 1641 lignes.
    Mon problème est que la taille de mon fichier peut évoluer en nombre de ligne et dans ce cas le résultat s'arrête à la ligne 1641….c'est bien domage!!!!
    Comment puis-je faire pour étendre ma sélection et ce quelque soit le nombre de lignes?

    En espérant avoir été clair dans mes explications.

    Merci d'avance pour votre aide.

    Codialement,

    Wavers

  2. #2
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    d'abord ça serait bien d'utiliser les tag de code =>#

    ensuite pour ton probleme tu vérifies que tes cellules soient vides
    avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    maCol=3
     while cell(lig,maCol)<>""
    Calcul(maCell)
    lig=lig+1 
    wend
    Cell(lig+1,maCol)=resultat
    j'espere que t'as compris
    Plzzz pas de questions par MP.

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour LeXo,

    Avant tout merci pour ta réponse.

    A dire vrai je n'ai pas compris grand chose pour ne pas dire autre chose!!!!

    Etant donné ma question tu as dû te rendre compte que je suis novice dans ce domaine!

    Tag?????

    De plus je ne vois pas ou je peux placer ta réponse dans ma macro!

    Slts,

    Wavers

  4. #4
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    le tag = mais tu l'as fais le temps que j'écrives mon POST

    alors le but est, si j'ai bien compris, de parcourir une colonne et de renvoyer les valeurs correspondantes.

    ton probleme, si j'ai bien compris, quel est la taille de cette colonne ?

    donc moi je te proposais de parcourir cette colonne en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim lig, maCol, tailleCol as integer
    lig=1'mettre le numero de ligne ou commence ta colonne de donnée
    maTaille=0
    maCol='Numero de colonne qui ne sera jamais vide(id) 
    while Cell(lig,maCol)<>""
    lig=lig+1
    wend
    tailleCol=lig
    tu mets la taille de ta colonne dans ton vlOOKUP et donc ton lookup parcourera ta colonne fonction de sa taille

    c plus kler ??
    Parcours de fichier excel
    je rajoutes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =VLOOKUP(C[-1],[Zone_OA.xls]zone!R2C1:""& tailleCol &""C3,3,FALSE)"
    met ta feuille en piece jointe sinon
    Plzzz pas de questions par MP.

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    C'est pas gagné!!!

    Je mets en pièce jointe les deux fichiers avec lesquels je travaille.

    Mon but est de renvoyer le contenu de la colonne C du fichier "Géo" dans la colonne C du fichier "Original"

    Pour cela je réalise une fonction "rechercheV". Fonction que j'inclus dans ma macro.

    J'ai réalisé cette macro alors que le fichier "Original" avait 1641 lignes. Suite à une nouvelle extraction (provenance d'un autre logiciel), le nombre de lignes est passé à 1648. De ce fait, la macro s'arrête à 1641 et tant pis pour les 7 lignes restantes!

    Le fichier "Original" est mis à jour régulièrement et le nombre de lignes peut donc varier.

    Voilà ce que je peux donner comme explications supplémentaires.

    Merci d'avance pour ton aide.

    Wavers
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    Voila j'ai pensé a quelquechose comme ça
    Fichiers attachés Fichiers attachés
    Plzzz pas de questions par MP.

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Hello LeXo,

    Je rame!!!!

    Effectivement ta petite démonstration fonctionne très bien.
    J'ai enlevé la partie Application.CommandBars("GEO") car trop compliqué pour moi(pour l'instant!)
    C'est très bien mais, malheureusement, je n'en suis pas encore à ce stade!!!
    Le fait d'enlever cette partie je n'y arrive toujours pas.
    De manière basique, je veux lancer cette macro en ayant les deux fichiers ouverts, tout simplement.

    Si je ne t'ai pas encore exaspéré tu es le bienvenu pour poursuivre ton aide!!

    A plus,

    Wavers

  8. #8
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    tu rajoutes un bouton sur ta feuille accroché a la macro
    t'enleves cette partie: l'interface qui te permet d'aller chercher ta feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    With UserForm1.CommonDialog1
        .Filter = "Fichier Excel (*.xls)|*.xls"
        .InitDir = Application.Path
        .ShowOpen
    End With
     
    fichier = UserForm1.CommonDialog1.Filename
    et tu changes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fichier="C:/...../geo.xls"
    Set exwrk = exapp.Workbooks.Open(fichier)
    voila la seule chose: etre sur qu'il soit toujours a la meme place
    Plzzz pas de questions par MP.

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ca marche!!!

    En tout cas, merci pour ton aide.

    Et au plaisir de te solliciter à nouveau!!!!!!!!!

    wavers

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/09/2011, 14h40
  2. Réponses: 13
    Dernier message: 26/07/2007, 08h50
  3. Réponses: 11
    Dernier message: 18/07/2006, 13h53
  4. Réponses: 7
    Dernier message: 02/05/2006, 16h28
  5. Réponses: 4
    Dernier message: 14/09/2005, 17h23

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