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 :

concatenation en fonction d'un test "si" [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 421
    Par défaut concatenation en fonction d'un test "si"
    Bonjour à tous,
    Je bosse sur xl 2000.
    Un petit problème de concaténation: j'ai pris l'habitude de concaténer diréctement plusieurs cellules d'une même ligne avec la fonction "concaténer", mais aujourd'hui, je dois automatiser cette action pour d'autres utilisateurs qui ne connaissent pas xl.

    J'arrive à le faire directement sur ma feuille,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTVIDE(A5);"";CONCATENER(E5& " ";F5 & " ";G5))
    Mais impossible de le coder en VBA

    J'ai donc un tableau qui commence à la ligne 4 (ligne des entête de colonnes), les valeurs à tester commencent à la ligne 5.
    Colonne A : le nom de la commune
    Colonne B : c'est ici que je souhaite avoir le résultat de la concaténation
    Colonne C / D / E respectivement : Numéro de rue / Type de rue / Nom de rue

    Je précise que le nombre de lignes est variable pour chaque tableau, c'est pour ça que je fais le test "SI".

    Je pensais faire quelque chose du genre:
    "Do loop while"

    Me positionner en cellule A5, concaténer en B5 les cellules C5 / D5 / E5
    Passer à la ligne suivante cellule A6,
    tester si elle est vide :
    Si "non": concaténer C6 / D6 / E6 en B6
    Si "oui": fin de la boucle.
    Ainsi de suite jusqu'à ce que le résultat du test "si" indique une cellule vide en colonne A.

    J'espère avoir bien expliqué mon cas…

    Merci

    P.S:
    Je viens de voir sur le Post du dessus (http://www.developpez.net/forums/d91...-excel/tester- )ce bout de code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Isempty(Range("A1").Offset(i))
    Qui peut me dire à quoi correspond Offset(i)…

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut yoyo3d et le forum
    Une proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub TEST()
    Dim Cel As Range
    For Each Cel In Range([A5], Cells(Rows.Count, "A").End(xlUp))
        If Cel <> "" Then Cel.Offset(0, 1) = IIf(Cel.Offset(0, 2) <> "", Cel.Offset(0, 2) & " ", "") & _
                                             IIf(Cel.Offset(0, 3) <> "", Cel.Offset(0, 3) & " ", "") & _
                                             IIf(Cel.Offset(0, 4) <> "", Cel.Offset(0, 4), "")
    Next Cel
    End Sub
    pour chaque cellule de A5 à dernière non vide de A
    Si la cellule n'est pas vide, concaténer les cellules située à 2, 3 et 4 colonnes (en les séparant par un espace) dans la cellule située à une colonne.
    Je l'ai pas testée, car ça me semble assez facile.
    A+

  3. #3
    Membre éclairé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 421
    Par défaut
    ok merci pour la réponse, je test et je te dit si ça a marché...

    bon....ça marche, c'est exactement ce que je souhaitais faire avec un "do loop until ou while, mais je n'ais pas réussi....

    merci
    merci
    merci....

  4. #4
    re
    re est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Par défaut
    Bonjour
    Comme ce post date un peu, j'ouvre une nouvelle discussion sur l'utilisation de la dernière macro
    @+

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 04/07/2006, 14h33
  2. xsl-fo : ligne de tableau specifique en fonction d'un test
    Par de LANFRANCHI dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/05/2005, 08h24

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