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 :

Recherche cellule vide Excel VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2017
    Messages : 2
    Par défaut Recherche cellule vide Excel VBA
    Bonjour à tous.

    Première utilisation car inscription ce jour.

    Voici ma requête.

    Je cherche à me positionner sur la première cellule vide d'une plage spécifique d'une colonne.

    Exemple:

    A1:eeeeeeeeee

    A2:rrrrrrrr

    A3:

    A4:kkkkkkkkkkkk


    Sélection de la plage A1:A4
    La cellule active devrait être A3
    Si plusieurs cellules vides, se positionner sur la première cellule vide.
    Les cellules concernées n'ont jamais de formule à l'intérieure.

    Ouverture de la fonction avec Private Sub CommandButton_Click()


    Pouvez-vous me transmettre le code VBA.

    Merci à tous.

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Merci de bien lire les règles de ce forum ‼

    A partir de la première cellule, utiliser la propriété End(xlDown) pour trouver la dernière saisie avant la première cellule vide,
    (correspond dans Excel à CTRL + Flèche Bas)

    il suffit ensuite de décaler d'une cellule vers le bas via la propriété Offset.

    Tout ceci étant documenté dans l'aide VBA interne donc à la portée d'un débutant …
    Sans compter la possibilité d'activer l'Enregistreur de macro et opérer manuellement : le code est livré sur un plateau !

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    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 Dens38 Voir le message
    Je cherche à me positionner sur la première cellule vide d'une plage spécifique d'une colonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").End(xlDown).Offset(1,0)
    https://msdn.microsoft.com/fr-fr/lib.../ff839539.aspx

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Marc-L et Menhir
    Ou même ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UsedRange.Columns(1).SpecialCells(xlCellTypeBlanks).Row
    qui évitera d'avoir le rows.count si la colonne est encore entièrement vide ou que seule la cellule A1 est remplie.

  5. #5
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    C'est facile avec For...Next

    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
     
    Sub PremiereCelluleVide()
     
    Set r = Range("b3:b50")
     
    For i = 1 To r.Rows.Count
     
     If r.Cells(i).Formula = "" Then
     
      Set PremiereVide = r.Cells(i)
      PremiereVide.Select
     
      Exit Sub
     End If
     
    Next
    End Sub

  6. #6
    Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2017
    Messages : 2
    Par défaut
    Citation Envoyé par Docmarti Voir le message
    C'est facile avec For...Next

    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
     
    Sub PremiereCelluleVide()
     
    Set r = Range("b3:b50")
     
    For i = 1 To r.Rows.Count
     
     If r.Cells(i).Formula = "" Then
     
      Set PremiereVide = r.Cells(i)
      PremiereVide.Select
     
      Exit Sub
     End If
     
    Next
    End Sub



    Parfait, la solution et maintenant en pratique et tout fonctionne, un grand merci

    A une prochaine fois

    Dens

  7. #7
    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
    Comment faire compliqué quand on peut faire simple...

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 184
    Billets dans le blog
    53
    Par défaut
    Bonjour Menhir,
    Comment faire compliqué quand on peut faire simple...

    J'avoue qu'il y a des jours, on a envie
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour à tous
    Dans le genre simple, j'ai encore plus simple :
    1) parcourir toutes les cellules de la colonne A du UsedRange + 1 ligne et ajouter VINGT-DEUX espaces à leur contenu
    2) utiliser la fonction Range.Find pour repérer la première occurrence de VINGT-DEUX espaces consécutifs et mémoriser la propriété Row de l'objet range(une cellule, donc) ainsi repéré. C'est notre ligne.
    3) reparcourir le tout en remplaçant partout (fonction REPLACE, hein ... et pas (ce serait trop facile) par Range.Replace ... Ni même TRIM,hein, car trop facile également) VINGT-DEUX espaces par rien de sorte à tout retrouver dans l'état originel.
    Bon ... je sors ...

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

Discussions similaires

  1. [XL-2010] première cellule vide rencontrée VBA
    Par awa123 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/09/2014, 22h14
  2. [XL-2000] detection cellule vide en vba
    Par jerem1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/12/2010, 21h39
  3. [XL-2007] recherche cellule vide dans colonne
    Par dandy87 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/11/2010, 17h33
  4. Supprimer une cellule vide excel
    Par bakaouf dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2010, 16h48
  5. tester cellule vide excel
    Par maxos75 dans le forum ASP
    Réponses: 1
    Dernier message: 14/09/2005, 18h02

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