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 :

Slection d'une colonne à partir d'une cellule précise VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut Slection d'une colonne à partir d'une cellule précise VBA
    Bonjour à toutes et à tous,

    Mon but est de tirer certaines informations d'un tableau fournisseur. Pour le moment, j'arrivais à me dépatouiller car les tableaux étaient tous identiques. Jusqu’à ce jour ou ils ont modifié des lignes, et ou ma macro ne fait pas correctement !

    Voici une partie d'un tableau de départ:

    Nom : Capture.PNG
Affichages : 4103
Taille : 35,5 Ko


    Les informations importantes pour moi sont A13:F24. Jusqu'à aujourd'hui, les tableaux commençais toujours en A13, je faisait donc une sélection du tableau à partir de A13 jusqu'en bas avec un décalage sur la droite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      'Selection de la la colonne "A"
        x = Range("A65536").End(xlUp).Row
        Range("A13" & ":" & "A" & x).Select
        'Selection des colonnes sur la droite
        Range(Selection, Selection.End(xlToRight)).Select
    Le soucis est que maintenant, ils ont changé la cellule de départ, elles est variable ( ex: ca peut être A5, A7, A15....).

    Je voudrais donc savoir si il était possible de dire à ma macro de commencer à selectionner à partir de la 1ere cellule "pleine" qui à pour "dénomination" "AH".

    Si mes explications n'ont pas été clair, je tâcherais d'être plus explicite. J'ai oublié de préciser une chose importante, mon niveau en VBA est proche du 0 absolu.

    Cordialement,

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour r4v3n,

    Bon... Je conçois bien que lorsque l'on a aucune connaissance en VBA, on demande une solution. Cependant, avec des mots-clés simples tu peux accéder à des codes relativement proche de celui que tu veux.
    De plus, l'enregistreur de macro est justement là pour t'aider.

    Avec la manipulation suivante, tu peux avoir, grâce à l'enregistreur de macro, une macro fonctionnelle dans 100% des cas...
    1. Tu sélectionnes ta colonne A.
    2. Tu fais une recherche sur "AH".
    3. Tu sélectionnes la cellule concernée.
    4. Tu étends ta sélection à la plage nécessaire.
    5. => Le tour est joué !

    Avec un peu de travail sur le code fourni, tu trouves rapidement cela :
    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
    Sub Selection_plage()
    Dim oRng As Range
     
    With Worksheets("Feuil2")
        Set oRng = .Columns(1).Find("AH*", LookIn:=xlValues, LookAt:=xlWhole)
     
        If Not oRng Is Nothing Then
            Set oRng = Range(oRng, .Cells(.Rows.Count, 6).End(xlUp))
     
            oRng.Select
        Else
            MsgBox "Pas de valeur ""AH"" dans la première colonne."
        End If
     
    End With
    End Sub
    Rien de très sorcier, quand on a envie !

    Voila, n'hésite pas à revenir vers moi !

    Cordialement,
    Kimy

  3. #3
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut
    Bonjour Kimy_Ire,

    Tout d'abord, merci pour ta réponse. J'ai approfondis mes recherches après avoir poster mon message, et je suis partis sur des filtres sur la colonnes "N°voies", pour effacer les cellules vides. Je faisait ensuite une sélection d'un coté, puis de l'autre. Enfin bon, il est vrai que je n'ai pas penser à la fonction "rechercher". En suivant tes explications, je n'ai pas réussi à retrouver ton bout de code avec tes fonctions. Je suis peut être mauvais aussi sur "excel" ^^

    Cordialement,

  4. #4
    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 r4v3n Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      'Selection de la la colonne "A"
        x = Range("A65536").End(xlUp).Row
        Range("A13" & ":" & "A" & x).Select
        'Selection des colonnes sur la droite
        Range(Selection, Selection.End(xlToRight)).Select
    Il serait plus simple d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range(Cells(13,1).End(xlToRight),Cells(Rows.Count,1).End(xlUp)).Select
    Je voudrais donc savoir si il était possible de dire à ma macro de commencer à selectionner à partir de la 1ere cellule "pleine" qui à pour "dénomination" "AH".
    Si je comprend bien l'exemple que tu à donné, rechercher "AH" ne te donnera pas la ligne 10 (qui semble être celle que tu souhaite).
    A ta place, je rechercherai donc plutôt "Ref" et je prendrais la ligne suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Y1 As Long
    Y1 = Range("A1:A" & Rows.Count).Find("Ref").Row + 1
    Range(Cells(Y1,1).End(xlToRight),Cells(Rows.Count,1).End(xlUp)).Select

  5. #5
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut
    Bonjour Menhir,

    Il est vrai que ta ligne de code est plus simple que les 5 miennes ! Je vais l'enregistrer pour pouvoir l'utiliser par la suite.

    Pour ce qui est de la ligne 10, non non je n'en ai pas besoin, ce qui m’intéresse commence à la ligne 13 et le code de "Kimy_Ire" fonctionne très bien. J'aimerais juste qu'il me donne deux ou trois autres détails pour retrouver ce bout de code.

    En tout cas, merci de ta réponse.

    Cordialement,

  6. #6
    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 r4v3n Voir le message
    Pour ce qui est de la ligne 10, non non je n'en ai pas besoin, ce qui m’intéresse commence à la ligne 13
    Dans ce cas, dans mon code, remplace Ref par AH et enlève le +1.
    En une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Range("A1:A" & Rows.Count).Find("AH").End(xlToRight),Cells(Rows.Count,1).End(xlUp)).Select

  7. #7
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut
    Je ne sais pas si c'est moi qui à vraiment du mal, mais il ne veut pas executer ta ligne de code. Il voit une erreur.

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

Discussions similaires

  1. Filtrer une colonne à partir d'une cellule
    Par D-D-Du-06 dans le forum Excel
    Réponses: 7
    Dernier message: 21/04/2016, 11h26
  2. Sommer une colonne à partir d'une cellule nommée
    Par sab_info dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/06/2013, 17h56
  3. [XL-2007] Créer une colonne à partir d'une selection conditionnelle
    Par sunstrike69 dans le forum Excel
    Réponses: 6
    Dernier message: 27/07/2009, 18h33
  4. remplir une colonne à partir d'une autre table
    Par judy_ dans le forum Langage SQL
    Réponses: 6
    Dernier message: 08/06/2008, 22h05
  5. Réponses: 2
    Dernier message: 31/01/2008, 17h58

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