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 :

Boucle jusqu'à une ligne vide [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Ingénieur Agro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Ingénieur Agro
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Par défaut Boucle jusqu'à une ligne vide
    Bonjour,

    Très grande débutante dans la programme VBA, j'ai passé les deux derniers jours à lire tous les forums possible pour répondre à une question très simple...

    Je possède un très long fichier de données contact dans les colonnes A à H.
    Je souhaite créer une macro qui permet la concatenation de ces données jusqu'à la première ligne vide rencontrée.

    Pas de problème sur la formule mais je n'arrive pas à lui dire de s'arrêter à la première ligne vide.
    Comme je souhaite utiliser cette macro pour des fichiers de longueurs différentes je ne peux pas simplement lui dire de s'arrêter à une ligne précise.

    Merci pour votre aide

    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 concatenation()
    '
    ' concatenation Macro
    ' Permet de concatener l'ensemble des données de A à H jusqu'à une ligne vide
    '
     
       Do
       ActiveCell.FormulaR1C1 = _
            "=RC[-8]&RC[-7]&RC[-6]&RC[-5]&RC[-4]&RC[-3]&RC[-2]&RC[-1]"
            ActiveCell.Offset(1, 0).Select
     
    Loop Until Row.Value = ""
     
     
    End Sub

  2. #2
    Membre éprouvé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 94
    Par défaut
    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    loop until isempty(activecell)

  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
    Par défaut
    Bonjour,

    Une solution parmi d'autres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loop Until Application.CountA(Selection.EntireRow) = 0
    Cordialement.

  4. #4
    Membre habitué
    Femme Profil pro
    Ingénieur Agro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Ingénieur Agro
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Par défaut
    Citation Envoyé par Soraphiroth
    essaye :
    Code :Sélectionner tout - Visualiser dans une fenêtre à part
    loop until isempty(activecell)
    Non ça ne marche pas parce que ma cellule active se trouve dans la colonne I et elle est donc toujours vide vu que je saute une ligne après ma concatenation.

    Citation Envoyé par Ashireon
    Hello,
    Est ce que les données sont continues sur une colonne et que la première Ligne vide est la fin de ton tableau ou il se peut que tu ai des lignes vides dans le tableau lui même?
    Les données de la colonne A sont bien continues et ne s'arrête qu'à la dernière ligne de mon tableau par contre dans mes autres colonnes (tel, mobile, mail) il y a des cases vides.

    Citation Envoyé par gFZT82
    Bonjour,

    Une solution parmi d'autres
    Code :Sélectionner tout - Visualiser dans une fenêtre à part
    Loop Until Application.CountA(Selection.EntireRow) = 0
    Cordialement.
    Non ma concatenation ne s'arrête pas et je dois appuyer deux fois sur Echap pour y mettre un terme.

    Merci pour vos réponses, je continue de chercher.
    En pièce jointe un exemple de mon fichier.
    Ma cellule active se trouve dans la colonne I.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éprouvé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 94
    Par défaut
    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    loop until isempty(sheets("ongletsurlequelletutravailles").cells(activecell.row, 1))

  6. #6
    Membre habitué
    Femme Profil pro
    Ingénieur Agro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Ingénieur Agro
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Par défaut
    Merci Soraphiroth, ça marche très bien même si je ne sais pas pourquoi

  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
    Par défaut
    Non ma concatenation ne s'arrête pas et je dois appuyer deux fois sur Echap pour y mettre un terme.
    Dans ton fichier, je sélectionne la cellule I2 puis je lance la procédure. Les cellules I2 à I13 se remplissent normalement avec la concaténation des 6 autres cellules puis le programme s'arrête normalement à la 14eme ligne.
    Si le programme ne s'arrête pas, c'est qu'il trouve des cellules non vides dans les lignes suivantes (et que ton fichier n'est pas identique à celui que tu as transmis).

    Cordialement.

  8. #8
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonjour
    Avec ceci, la boucle s'arrete lorsque la valeur de la cellule situé au dessus de la cellule active est vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub concatenation()
    Dim a As String
    ' concatenation Macro
    ' Permet de concatener l'ensemble des données de A à H jusqu'à une ligne vide
    '
       Do
       ActiveCell.FormulaR1C1 = _
            "=RC[-8]&RC[-7]&RC[-6]&RC[-5]&RC[-4]&RC[-3]&RC[-2]&RC[-1]"
            ActiveCell.Offset(1, 0).Select
    a = ActiveCell.Offset(-1, 0)
    Loop Until a = ""
     
    End Sub
    Bonne journée

  9. #9
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Hello,
    Est ce que les données sont continues sur une colonne et que la première Ligne vide est la fin de ton tableau ou il se peut que tu ai des lignes vides dans le tableau lui même?

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

Discussions similaires

  1. [XL-2007] Boucle jusqu'à une cellule non vide?
    Par MANOU06 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/02/2011, 23h54
  2. [XL-2003] Ajouter une deuxième condition et arrêt de la boucle à la 2ème ligne vide
    Par Vadorblanc dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/10/2010, 18h29
  3. Réponses: 8
    Dernier message: 15/06/2006, 20h56
  4. Rechercher une ligne vide
    Par nico-pyright(c) dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 22/12/2005, 17h10
  5. TValueListEditor: Ajout automatique d'une ligne vide
    Par Patrick Seuret dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/06/2005, 12h16

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