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 :

Probleme de selection de lignes et de colonnes non contigues [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 24
    Points : 22
    Points
    22
    Par défaut Probleme de selection de lignes et de colonnes non contigues
    Bonjour,

    Je tente par tout les moyens de selectionner une plage de cellules ou les colonnes et les lignes sont non contigues. De plus le nombre de lignes varie car au court du temps j'ajoute des lignes pour rentrer de nouvelles infomations.

    Je trouve des reponses a mon probleme soit seulement pour des colonnes non contigues soit seulement pour des lignes non contigues.

    Voici un exemple pour mieux comprendre mon probleme :

    A1 :        B1 :     C1 :        D1 : TB
    A2 : 100    B2 : A   C2 :        D2 :
    A3 : 100    B3 : B   C3 :        D3 :
    A4 : 100    B4 : B   C4 :        D4 :
    A5 : 100    B5 : B   C5 :        D5 :
    A6 : 100    B6 : A   C6 :        D6 :
    A7 : 100    B7 : A   C7 :        D7 :
    Je voudrais selectionner mes 4 colonnes ainsi que tout les lignes presentes sachant qu'il y aura toujours un blanc en A1 et que la derniere case en A aura toujours une valeur.

    J'ai essaye ce code mais il ne fonctionne pas, c'est bien bizarre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.Rows(8).Select
    ActiveSheet.Rows(Selection, Selection.End(xlDown)).Select
    J'ai alors essaye cette ligne de code (selection cellules non contigues) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Range("C8", ActiveSheet.Range("FG8").End(xlToLeft)).Select
    Mais il s'arrete bien avant en BK8

    Du coup j'ai trouve un petit code qui pourrait resoudre mon probleme mais il ne fonctionne pas (error 1004 a la ligne "union") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    StartRange = "C8"
    EndRange = "FG8"
    Set a = Range(StartRange, Range(StartRange).End(xlDown))
    Set b = Range(EndRange, Range(EndRange).End(xlDown))
    Union(a, b).Select
    Pourriez vous m'aider ?

    Amicalement

  2. #2
    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
    Ton explication est floue

    Tu veux avoir la Plage des cellules non vides de la ligne 8?

  3. #3
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    bonjour,

    Une plage de cellule est composé comme suit :
    - (A1:C4) De A1 jusqu'a C4
    - (B1;C8) B1 et C8
    et bien sur on peut combiner

    -(A1:C4;B6:F12;C15:C20) De A1 jusqu'a C4 et De B6 jusqu'a F12 et De C15 jusqu'a C20

    en manuelle il faut sélectionner la première partie A1:C4 puis avec la touche [CTRL] maintenue enfoncée on clic sur les autres partie de la plage.

    C'est pour quoi faire tu le dis pas dans ton post (ou alors j'ai pas vu)

    à bientôt

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Non je ne veux pas que le ligne 8 soit vide car elle est deja vide et ca importe peu.
    Pour que tu comprennes mieux je t'ai attache un imprim ecran de ma base de donnee.

    Nom : selecligncolumn.jpg
Affichages : 538
Taille : 595,5 Ko

    Ce que je veux c'est selectionner ma plage de donnees allant de C8 a FG8 et de descendre jusqu'a la dernier case remplie de la colonne C (pour ma photo ca sera C12).
    Tu peux constater qu'en J, K, L, M je n'ai toujours rien des infos y seront rajoutees par la suite pour certaine lignes (mais pas toutes).
    Dans cette plage il y a des trous (d'ou plage de donnees non contigue).

    Amicalement

  5. #5
    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
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub KKK()
    Dim LastLig As Long
    Dim Plage As Range
     
    With Worksheets("Feuil")
        LastLig = .Cells(.Rows.Count, "C").End(xlUp).Row
        If LastLig >= 8 Then
            Set Plage = .Range("C8:FG" & LastLig)
            MsgBox Plage.Address
            'suite de ton code concernant Plage (de type range)
            Set Plage = Nothing
        End If
    End If
    End Sub

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

Discussions similaires

  1. [XL-2007] Probleme de selection de lignes sous VBA
    Par coco.on.off dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/08/2014, 20h50
  2. Faire la moyenne d'une ligne avec des colonnes non conjointes
    Par NewYork dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/12/2010, 10h06
  3. filtre colonnes non contigues, sans doublons
    Par JYL74 dans le forum Excel
    Réponses: 5
    Dernier message: 14/11/2008, 10h57
  4. Tableau Colonne non contigue
    Par vinch9 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/04/2008, 14h31
  5. Probleme se selection de lignes
    Par david77320 dans le forum WinDev
    Réponses: 2
    Dernier message: 30/11/2007, 11h57

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