+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Futur Membre du Club
    Inscrit en
    mars 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : mars 2009
    Messages : 105
    Points : 19
    Points
    19

    Par défaut Concaténation sur Excel

    Salut,

    Je me permets de vous solliciter pour m’aider à résoudre un petit problème sur Excel, en espérant que j’aurais une réponse.

    Voila je veux faire une concaténation sur ma colonne Z, de la colonne G à Q de ma feuille excel.
    Dans ma concaténation il faut éviter les cases où s'est écrit "None".
    Pour mieux comprendre voici le fichier Excel joint et ci-dessous ce que j'ai fait manuellement sur Excel et pourtant ça ne marche pas.
    Code :
    =IF(G2="None";"";G2&IF(H2="None";"";H2&IF(I2="None";"";I2&IF(J2="None";"";J2&IF(K2="None";"";K2&IF(L2="None";"";L2&IF(M2="None";"";M2 & IF(N2="None";"";N2&IF(O2="None";"";O2 & IF(P2="None";"";P2 & IF(Q2="None";"";Q2)))))))))))
    Je ne comprends pas pourquoi cette combinaison ne marche pas…
    Je vous remercie d’avance pour l’aide.

  2. #2
    Expert Confirmé Sénior Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    décembre 2006
    Messages
    3 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : décembre 2006
    Messages : 3 957
    Points : 8 204
    Points
    8 204

    Par défaut

    Bonsoir,

    adaptes un truc comme ça,
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub essai()
    Dim concat As String, x As Integer, cell As Range
     
     For x = 7 To 17
    If Cells(2, x) <> "none" Then
       concat = concat & Cells(2, x)
    End If
    Next x
    MsgBox concat
    End Sub
    Bonne soirée
    Cordialement,
    Dom

    N'oubliez pas que les membres qui vous répondent sont des participants bénévoles !
    Merci de votre visite et ... n’oubliez pas le guide, en cliquant (en bas des réponses) sur si content, sur rien du tout si pas satisfait, sinon sur si pas content mais alors pas content du tout

  3. #3
    Membre Expert
    Inscrit en
    juillet 2007
    Messages
    2 132
    Détails du profil
    Informations forums :
    Inscription : juillet 2007
    Messages : 2 132
    Points : 2 415
    Points
    2 415

    Par défaut

    Salut à tous
    Par formule :
    Code :
    =SUPPRESPACE(SI(G2="None";"";" " & G2)&SI(H2="None";"";" " & H2)&SI(I2="None";"";" " & I2)&SI(J2="None";"";" " &J2)&SI(K2="None";"";" " & K2)&SI(L2="None";"";" " & L2)&SI(M2="None";"";" " & M2) & SI(N2="None";"";" " & N2)&SI(O2="None";"";" " & O2) & SI(P2="None";"";" " & P2) & SI(Q2="None";"";" " & Q2))
    Attention : j'ai rajouté un espace avant chaque morceau
    None1 est différent de None et soit on le met (=None1) sout on utilise gauche(...;4)=None
    A+

  4. #4
    Expert Confirmé Sénior Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    décembre 2006
    Messages
    3 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : décembre 2006
    Messages : 3 957
    Points : 8 204
    Points
    8 204

    Par défaut

    re,
    pour toutes les lignes, je pensais à ça,
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub essai()
    Dim concat As String, x As Integer, cell As Range, y As Integer
     
    For y = 2 To Range("a100").End(xlUp).Row
     For x = 7 To 17 'pour une ligne
    If Cells(y, x) <> "none" Then
       concat = concat & Cells(y, x)
    Range("a" & Range("a100").End(xlUp).Row + 1) = concat
    End If
    Next x
    Next y
     
    End Sub
    j'ai corrigé :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub essai()
    Dim concat As String, x As Integer, cell As Range, y As Integer
     
    For y = 2 To Range("a100").End(xlUp).Row
     For x = 7 To 17 'pour une ligne
    If Left(Cells(y, x), 4) <> "None" Then
       concat = concat & Cells(y, x)
    End If
    Next x
    Range("z" & Range("z1000").End(xlUp).Row + 1) = concat
    concat = ""
    Next y
     
    End Sub
    Cordialement,
    Dom

    N'oubliez pas que les membres qui vous répondent sont des participants bénévoles !
    Merci de votre visite et ... n’oubliez pas le guide, en cliquant (en bas des réponses) sur si content, sur rien du tout si pas satisfait, sinon sur si pas content mais alors pas content du tout

  5. #5
    Futur Membre du Club
    Inscrit en
    mars 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : mars 2009
    Messages : 105
    Points : 19
    Points
    19

    Par défaut

    Merci casefayere et Gorfael pour votre aide précieuse.
    Mon problème est résolu grace à vous

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •