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 :

Problème avec la Fonction UsedRange


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Par défaut Problème avec la Fonction UsedRange
    Bonjour,

    Dans ma macro j'ai ajouté cette instruction :

    Set MaPlage = Worksheets("Feuil3").UsedRange

    Malheureusement je ne récupère pas du tout ce que je souhaite, j'obtiens toute la feuille Excel avec les retour à la ligne y compris.

    J'aimerai qu'il me récupère toutes les lignes qui vont de la colonne A à G jusqu'à la dernière ligne correspondant à une donnée (ne pas prendre si y a rien)

    Merci

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par SpaceX Voir le message
    J'aimerai qu'il me récupère toutes les lignes qui vont de la colonne A à G jusqu'à la dernière ligne correspondant à une donnée (ne pas prendre si y a rien)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set MaPlage = Intersect(Worksheets("Feuil3").UsedRange, Worksheets("Feuil3").Columns("A:G"))

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonjour,
    oui ça arrive.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set MaPlage =Worksheets("Feuil3").range("A1").currentregion

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    Attention!!!!!
    userange commence a la premiere cellule pleine et termine a la derniere
    ce qui fait que si tu veux "A1: le reste" des colonne ("A:G") soit sur que le usedrange commence bien en A1 sinon tu va tronquer ta plage voulue
    perso pour etre sur je ferais quelque chose de plus explicit pour etre sur de recupérer ce que je veux et cela meme avec usedrange

    exemple

    1° ou que demarre usedrange on demarre en A1 d'office


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    With Sheets(1) 'nom ou index du sheets a adapter
    MsgBox .Range("A1:G" & .UsedRange.Cells(.UsedRange.Cells.Count).Row).Address
    End With
    End Sub
    ici explicitement on demarre en A1 meme si usedrange ne commence pas en ligne1 et colonne 1
    pour chopper la derniere ligne on se sert de ".usedrange.cells(.usedrange.cells.count)" qui donne la derniere cellule de usedrange


    2° maintenant si tu veux récupérer la plage "A:G" a partir de la ou commence usedrange en terme de ligne jusque a la derniere ligne de usedrange

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test2()
    With Sheets(1) 'nom du sheets a adapter
    MsgBox Range("A" & .UsedRange.Row & ":G" & .UsedRange.Cells(.UsedRange.Cells.Count).Row).Address
    End With
    End Sub
    pour info
    1. .usedrange.row ou usedrange.cells(1).row donne la premiere ligne ou commence usedrange il n'est pas forcé que ce soit la "1"
    2. .usedrange.cells(.usedrange.cells.count) donne la derniere cellule du usedrange
    3. .usedrange.column(1) donne la premiere colonne de la usedrange attention!! il n'est pas forcé que ce soit la "A"

    et pour faire un peu de trapeze avec usedrange

    voici une methode pour chopper les colonnes "A:G" du sheet selon les index depart et fin en terme de lignes de usedrange
    remplace "-x" par 0 et regarde ce que columns("A:G") donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test4()
        With Sheets(1)    'nom du sheets a adapter
            x = .UsedRange.Column - 1
            MsgBox .UsedRange.Columns("A:G").Offset(0, -x).Address
        End With
    End Sub
    tout ca pour dire "" bien savoir ce que usedrange veut dire""
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Citation Envoyé par SpaceX Voir le message
    Malheureusement je ne récupère pas du tout ce que je souhaite, j'obtiens toute la feuille Excel avec les retour à la ligne y compris.
    A lire, un petit topo sur comment récupérer une plage...

  6. #6
    Membre confirmé
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Par défaut
    bonjour,

    le problème est résolu merci .

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

Discussions similaires

  1. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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