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 :

Problème concaténation excel/vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut Problème concaténation excel/vba
    Bonjour, je ne m'y connais pas du tout en VBA et j'ai une macro Excel a modifier. Un des problèmes qui se pose à moi est le suivant :
    J'ai 4 colonnes (B,C,D et E) qui contiennent un nom et les trois prénoms d'un individu; je dois concaténer ces 4 champs
    et j'ai le code suivant(déjà existant avant ma modif) :


    Sub TRAITNOMPRENOMS()
    Application.StatusBar = "CREATION DE LA DONNEE NOM PRENOMS"

    NumColonne = 2

    Columns(NumColonne).Insert Shift:=xlToRight

    ' Cells(1, NumColonne) = "=CONCATENER(LC(1);"" "";LC(2);"" "";LC(3);"" "";LC(4))"
    Cells(1, NumColonne) = Cells(1, NumColonne) + Cells(1, NumColonne + 1) + " " + Cells(1, NumColonne + 2) + " " + Cells(1, NumColonne + 3)


    NbCopFin = 0
    NbSupFin = 4

    UTILCOPIERCOLLERSUPPRIMER
    End Sub

    .

    .

    .

    .

    Sub UTILCOPIERCOLLERSUPPRIMER()



    'copie vers le bas
    Range(Cells(1, NumColonne), Cells(LignesTotal, NumColonne + NbCopFin)).Select
    Selection.FillDown

    'suppression des formules
    Selection.Copy
    Selection.PasteSpecial Paste:=xlValues, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
    '
    'Suppression des colonnes origines des données
    Range(Cells(1, NumColonne + 1), Cells(LignesTotal, NumColonne + NbSupFin)).Delete Shift:=xlToLeft

    End Sub



    Le soucis est qu'il me concatène bien les champs pour la première occurrence mais il fait un copier coller vers le bas et je perd donc toutes les données des individus suivants.
    Quelqu'un pourrait il m'aider afin de résoudre ce problème?
    La question est assez mal formulé mais je ne vois pas comment faire plus clair, désolé

  2. #2
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Et une fois que tu as concaténé les 4 termes, tu veux les mettre où? En colonne 1?

  3. #3
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Et si tu décommentes la formule en commentaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cells(1, NumColonne) = "=CONCATENER(LC(1);"" "";LC(2);"" "";LC(3);"" "";LC(4))"
    et que tu commentes celle du dessous, ça n'irait pas mieux, par hasard?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut Problème concaténation excel/vba
    En fait je crée une colonne (en 2) et c'est a cet endroit que je souhaite mettre le résultat.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    Citation Envoyé par Megaxel
    Et si tu décommentes la formule en commentaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cells(1, NumColonne) = "=CONCATENER(LC(1);"" "";LC(2);"" "";LC(3);"" "";LC(4))"
    et que tu commentes celle du dessous, ça n'irait pas mieux, par hasard?
    non ca me met "erreur d'execution 1004, erreur définie par l'application ou l'objet".

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu peu essayer de modifier ton code .. la ligne à activer pour modifier la formule devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1, NumColonne).FormulaR1C1Local = "=CONCATENER(LC(1);"" "";LC(2);"" "";LC(3);"" "";LC(4))"

  7. #7
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Oui, d'accord.
    Et donc, si tu échanges les deux formules existantes, comme je te l'ai dit? La formule étant en relatif, ça devrait marcher.

    [Edit] D'accord avec bbil....

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    Citation Envoyé par bbil
    tu peu essayer de modifier ton code .. la ligne à activer pour modifier la formule devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1, NumColonne).FormulaR1C1Local = "=CONCATENER(LC(1);"" "";LC(2);"" "";LC(3);"" "";LC(4))"
    Avec cette ligne de code, la concatenation se passe bien, par contre, je me retrouve avec le même nom et les mêmes prénoms sur toutes les lignes, donc je perd mes données . . .

  9. #9
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Est-ce que tu veux nous donner la formule qui se trouve dans les cellules de la colonne 2 (où se trouvent les concaténations) ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    Ben j'ai pas de formule, je crée la colonne via la macro avec la ligne :

    Columns(NumColonne).Insert Shift:=xlToRight

    A moins que je me plante completement . . .

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    Ben j'ai pas de formule, je crée la colonne via la macro avec la ligne :

    Columns(NumColonne).Insert Shift:=xlToRight

    A moins que je me plante completement . . .

  12. #12
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Houla, là, on ne se comprend pas.
    A la fin de l'exécution de ta macro, qui te met sur toute la colonne le même "nom prenom1 prenom2 prenom3", si tu cliques sur une des cellules, tu dois avoir une formule dans la barre de formule. C'est cette formule que j'aimerais voir (en ligne 1, puis sur les lignes en dessous)

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    oulala, il n'y a aucune formule dans la barre de formule, mais juste le résultat de la concaténation

  14. #14
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Houps, d'accord, c'est vrai: dans la suite du code, il-y-a un copier-coller par valeur...
    Peux-tu commenter le code qui fait ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'suppression des formules 
    Selection.Copy 
    Selection.PasteSpecial Paste:=xlValues, Operation:= _ 
    xlNone, SkipBlanks:=False, Transpose:=False 
    '

  15. #15
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Ton classeur est t'il en recalcul automatique ? si non il faut lance r le calcul aprés la recopie des formules , ligne à placer aprés le fil)lDown..
    (copie vers le bas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    Range(Cells(1, NumColonne), Cells(LignesTotal, NumColonne + NbCopFin)).Select
    Selection.FillDown
    Calculate
    'suppression des formules
    Selection.Copy
    Selection.PasteSpecial Paste:=xlValues, Operation:= _
    ...


  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    ca y est mais le résultat est toujours le même . . .

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    Citation Envoyé par bbil
    Ton classeur est t'il en recalcul automatique ? si non il faut lance r le calcul aprés la recopie des formules , ligne à placer aprés le fil)lDown..
    (copie vers le bas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    Range(Cells(1, NumColonne), Cells(LignesTotal, NumColonne + NbCopFin)).Select
    Selection.FillDown
    Calculate
    'suppression des formules
    Selection.Copy
    Selection.PasteSpecial Paste:=xlValues, Operation:= _
    ...


    Ca y est c'est ca, ca marche, merci beaucoup a vous deux
    ;-)

  18. #18
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Ha ben? C'est cool, ça! Je disparais 1/2 heure, et bbil s'est occupé du problème.
    Il ne manque plus que le tag "RÉSOLU"...

  19. #19
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Citation Envoyé par rotterdamt
    Ca y est c'est ca, ca marche, merci beaucoup a vous deux
    ;-)
    Un petit clic sur le tag tout en bas à gauche

    Merci d'avance

    Bonne continuation

    Théo

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

Discussions similaires

  1. VBA Excel - Problème de password VBA
    Par sat478 dans le forum VBA Word
    Réponses: 5
    Dernier message: 11/01/2006, 17h38
  2. concaténation en vba dans une formule de cellule Excel
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 22h58
  3. Problème avec open() [Excel VBA]
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 16h21
  4. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27

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