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 :

Selectionner une cellule vide en fonction des colonnes et lignes remplies [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Selectionner une cellule vide en fonction des colonnes et lignes remplies
    Bonjour à tous,

    J'ai un tableau que je remplis de colonne en colonne, donc je remplis d'abord la colonne A entièrement (depuis A6 jusque A17), puis je passe à la B (pareil, de B6 à B17), etc...

    Ce que je souhaiterai parvenir à faire, c'est une macro qui me sélectionne directement la première cellule vide que je dois remplir.


    Example : Imaginons que la colonne A est entièrement remplie, et que j'ai déjà rempli B6 et B7. J'aimerai que ce soit la cellule B8 qui soit sélectionnée.

    Pour info, mon range va de A6 à I17 et je l'ai nommé "Wtr_C".

    Je trouve bien le moyen de sélectionner la dernière cellule vide d'une colonne ou d'une ligne mais je ne sais pas comment combiner les 2 pour d'abord progresser de colonne en colonne puis de ligne en ligne.
    Ce doit surement être quelque chose comme "1. sélectionner la première colonne non-complète; et 2. dans cette colonne, sélectionner la première cellule vide", non ?
    Mais comment traduire cela en VBA ?

    Merci pour votre aide
    - Henri

  2. #2
    Membre actif Avatar de CristofMartins
    Homme Profil pro
    ICH-DEV
    Inscrit en
    Juillet 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : ICH-DEV
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 140
    Points : 219
    Points
    219
    Par défaut
    Bonjour,
    as-tu pensé a faire un test?
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if cellule = "" then
    ...
    end if
    Don't worry, be happy

    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter



    Cristof Martins

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Test()
    Dim Col As Integer
        For Col = 1 To 9
            If Cells(6, Col).End(xlDown).Row < 17 Then
                Cells(6, Col).End(xlDown).Offset(1, 0).Select
                Exit For
            End If
        Next Col
    End Sub
    Cordialement.

  4. #4
    Membre régulier 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
    Points : 76
    Points
    76
    Par défaut
    Bonjour
    Une proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim Rng As Range
    Set Rng = Range("Wtr_C").Cells.SpecialCells(xlCellTypeBlanks)
    Select Case Rng.Areas.Count
        Case 1
            Rng(1, 1).Select
        Case Else
            Rng.Areas(2)(1, 1).Select
    End Select
    End Sub
    Cordialement

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Excellent !
    Merci beaucoup à tous les 2. Vos propositions me plaisent tout particulièrement
    Bravo bravo

  6. #6
    Membre régulier 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
    Points : 76
    Points
    76
    Par défaut
    Re bonjour à tous,
    Dans le cas ou la zone peut être entièrement remplie :
    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 test_2()
    Dim Rng As Range
    On Error Resume Next
    Set Rng = Range("Wtr_C").Cells.SpecialCells(xlCellTypeBlanks)
    If Err Then
        Err.Clear
        MsgBox "La zone est remplie", 64, "Tableau rempli"
        Exit Sub
    End If
    Select Case Rng.Areas.Count
        Case 1
            Rng(1, 1).Select
        Case Else
            Rng.Areas(2)(1, 1).Select
    End Select
    End Sub
    Cordialement

  7. #7
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Pour le fun
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Test()
        Range("Wtr_C").Cells(Application.CountA(Range("Wtr_C")) Mod 12 + 1, _
        Int(Application.CountA(Range("Wtr_C")) / 12) + 1).Select
    End Sub
    Cordialement.

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

Discussions similaires

  1. [XL-2010] Faire un tri en fonction d'une date ou d'une cellule vide
    Par Nono52 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/01/2015, 08h32
  2. Fonction - Renvoyer une cellule vide
    Par rogerlette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/07/2010, 11h34
  3. Réponses: 3
    Dernier message: 06/12/2006, 10h01
  4. Mettre un "0" à là place d'une cellule vide.
    Par P'tit Lio dans le forum Access
    Réponses: 22
    Dernier message: 24/07/2006, 14h19
  5. Réponses: 3
    Dernier message: 06/06/2006, 17h38

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