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 :

Selection entre deux cases vides


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut Selection entre deux cases vides
    Bonjour à toutes et à tous,

    Je cherche à faire une macro/vba qui me permettrait de dire " je sélectionne les lignes comprises entre deux cases vides" puis je fais ma tambouille puis je continue je prends les lignes suivantes qui se trouvent entre d'autres cases vides.

    Exemple :
    A1 (vide) B1 (non vide)
    ligne
    ligne
    ligne
    A5 (vide) B5 (non vide)
    ligne
    ligne
    ligne
    ligne
    ligne
    A11 (vide)

    etc.

    Merci par avance !!!

    Pierre- Alex

  2. #2
    Membre éclairé Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Par défaut
    Bonsoir flom93
    Une proposition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
    Dim Plg As Range
    With Sheets("Feuil1") ' à adapter
        Set Plg = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(3)).SpecialCells(xlCellTypeBlanks).Offset(0, -1)
    End With
    End Sub
    Cordialement

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    J'ai testé la macro mais rien ne se passe...
    Je dois être fatigué, je comprends pas d'où fait l'erreur...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 21
    Par défaut
    Autre proposition :
    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
    17
     
    nbligne=1000
    Dim Mem(nbligne, nbligne)
    k = 1
    For f = 2 To nbligne
     
    If Cells(f, 1) <> "" Then
    x = x + 1
    Mem(k, x) = Cells(f, 1)
    End If
     
    If Cells(f, 1) = "" Then
    k = k + 1
    x=0
    End If
     
    Next
    Ce code permet de balayer la colonne A, et de mémoriser les valeurs dans Mem(k,x).
    A chaque groupe de valeur entre 2 cellules vides, il incrémente k, puis enregistre les valeurs dans Mem(k,1) puis Mem(k,2), ....

    Pour ton exemple cela donne :
    Mem(1,1)=A2
    Mem(1,2)=A3
    Mem(1,3)=A4
    Mem(2,1)=A6
    Mem(2,2)=A7
    Mem(2,3)=A8
    Mem(2,4)=A9
    Mem(2,5)=A10

  5. #5
    Membre éclairé Avatar de Efgé2
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Par défaut
    Bonjour flom93, lmb19,
    Ma proposition d'hier soir n'était que la création de la plage que tu recherche.
    Voici un code "qui fait quelque chose" et qui te montrera comment boucler sur les lignes vide entre deux non vides.
    Fait un essai sur un classeur test d'une vingtaine de lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test2()
    Dim Plg As Range, C As Range, Msg$
    With Sheets("Feuil1") ' a adapter
        Set Plg = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(3)).SpecialCells(xlCellTypeBlanks).Offset(0, -1)
        Plg.Select
        MsgBox Plg.Address, 64, "PLage utilisée"
        For Each C In Plg
            Msg = Msg & C.Row & vbLf
        Next C
        MsgBox Msg, 64, "Liste des lignes"
    End With
    End Sub
    Cordialement

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    En fait je voudrais que la macro sélectionne les lignes entières qui se trouvent entre deux cases vides puis que les lignes soient copiées et collées dans une nouvelles feuilles.
    Une fois cela fait, on retourne sur la feuille 1 et on continue avec les lignes suivantes, etc...

    J'ai 10 000 lignes en tout...

Discussions similaires

  1. Formule pour créer un lien entre deux case
    Par kasse08 dans le forum Access
    Réponses: 1
    Dernier message: 13/08/2012, 19h58
  2. LigneLibre entre deux cases
    Par womannosky dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 01/07/2008, 10h42
  3. Clause WHERE pour SELECT entre deux dates
    Par arogues dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/04/2008, 17h42
  4. Selection entre deux dates
    Par Kaiba dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/07/2007, 15h49
  5. Table, faire la fusion entre deux case
    Par dftrish dans le forum WinDev
    Réponses: 4
    Dernier message: 05/06/2007, 16h22

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