Comment mettre un espace entre deux valeurs diférentes ?

Résolu
capeo Messages postés 188 Statut Membre -  
capeo Messages postés 188 Statut Membre -
Bonjour,

J'ai un tableau avec plusieurs données et je voudrais ajouter un espace pour recopier une Valeur.

ex :

abc104 je n'ai qu'une valeur et je ne veux rien ajouter
abc105 valeur à ajouter + basic
abc105 1
abc105 2
abc106 valeur à ajouter + basic
abc106 1
abc106 2
abc106 3
abc107 je n'ai qu'une valeur et je ne veux rien ajouter.
xvgh je n'ai qu'une valeur et je ne veux rien ajouter.

est ce faisable sans macro ?

24 réponses

  • 1
  • 2
Résumé de la discussion

La problématique porte sur l'ajout d'un espace dans un tableau Excel pour recopier une valeur, sans recourir à une macro, illustrée par des exemples abc104 ou abc105. Plusieurs participants discutent d'éventuelles solutions sans macro, mais les avis restent partagés: certains estiment que l'opération peut être extrêmement dépendante de l'emplacement des données et du résultat recherché, d'autres envisagent des macros adaptées. Des échanges évoquent des retours d'expérience sur des fichiers exemples et des bugs; certains notant l'écrasement de données ou des plantages lorsque le tableau est volumineux, d'autres partagent des liens et conseils pratiques. En parallèle, certains recommandent d'utiliser Alt+F11 pour visualiser les macros ou de partager des captures et conseils via des ressources en ligne pour clarifier les besoins.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Mais c'est différent de la demande primaire, il y a maintenant 2 niveaux soit le premier (numérique) et le second (alphabétique) ... !
    Dites-nous comment on fait pour savoir quand à lieu une révision et dito pour un amendement .... ?
    Vous n'avez pas mis l'exemple du résultat selon votre demande primaire ou alors il s'agit des amendements qui doivent s'inscrire en colonne [C] selon les colonnes [A] et [B] .... !

    1
    1. capeo Messages postés 188 Statut Membre
       
      Bonjour

      le 1 er document est dit basic , la 1 ère évolution est toujours noté 01 AB, la 2 eme évolution 01 AC
      le 02 correspond à un nouveau tirage du document qui intègrent toutes les évolutions ou qui est de format différent. le niveau pourrait être de la forme
      1.0 basic
      1.1 01 AB
      1.2 01 AC
      1.3 01 AD
      .....
      ......
      ......
      2.0 basic
      2.1 02 AB
      2.2 02 AC etc
      Dans le tableau touts les documents en jaune n'existe dans l'extraction ce sont les valeurs à insérer pour chaque document sauf quand il est déjà en basic seuelemnt comme NFIAN113, NFIAN118 etc

      Salutations.
      0
      1. Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention   17 482 > capeo Messages postés 188 Statut Membre
         
        OK, je me retire de la discussion ...
        0
      2. capeo Messages postés 188 Statut Membre > Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour,

        Mille excuse, j'ai omis de répondre à ta question. ce n'est pas volontaire mais un oubli facheux.

        Cordialement
        0
  2. Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Bonjour capeo.

    Ton fichier est le bienvenu, car il démontre que ce que nous avions cru comprendre au départ ne correspondait pas à ta demande.
    Mais, comme le dit Le Pingou, ton explication rest très incomplète : on ne sait pas à quel endroit il faut une formule et quel résultat doit fournir cette formule ...
    1
  3. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Certainement sans macro, avec une colonne supplémentaire pour le calcul, mais est-il possible de connaitre la structure du tableau....?

    0
  4. Raymond PENTIER Messages postés 58216 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Salut, Le Pingou !
    Tu es costaud, d'avoir compris la question ...
    Alors si un de vous deux veut bien m'expliquer de quoi il s'agit : je n'ai rien pigé !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonjour,

    Si tes données sont en $C$4:$C$11, tu peux mettre (en D4 puis recopie vers le bas) la formule suivante :
    =C4&SI(NB.SI($C$4:C4;C4)>1;" "&NB.SI($C$4:C4;C4);SI(NB.SI($C$4:$C$11;C4)>1;" 1";""))


    Cordialement
    0
    1. capeo Messages postés 188 Statut Membre
       
      je n'y arrive pas mais peut être que le tableau que je fourni est plus explicite


      https://www.cjoint.com/?3Lxs1tsAL67

      merci
      0
  7. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    C'est clair pour vous mais nous n'avons pas le don de lire dans les étoiles, et même à Noël.
    Vous ne répondez pas à ceci :
    Dites-nous comment on fait pour savoir quand à lieu une révision et dito pour un amendement .... ?
    Et non plus à :
    on ne sait pas à quel endroit il faut une formule et quel résultat doit fournir cette formule ...

    Pourquoi ne voulez-pas insérez le tout dans votre fichier exemple .... ?

    0
  8. capeo Messages postés 188 Statut Membre
     
    Bonjour,

    je pense que je mes suis mal expliquer depuis le début sur le résultat à obtenir.

    Le tableau en écriture noire est une extraction d'un logiciel de gestion de doc. Malheureusement dans cette extraction le livre d'origine n'apparaît pas toujours sauf dans le cas ou il n'a pas subit de mise à jour (ex NFIAN113). Je cherche donc un moyen d'insérer une ligne automatiquement avec le document d'origine dans le tableau devant sa ou ses mise à jour (ex NFIAN112). Sachant que si le document a subit une refonte le chiffre passe a 02

    La 1 ère mise à jour commence toujours par 01 AB et après ce sont les lettres qui changent (AC; AD ..etc). Si ce document subit une refonte alors il passe en 02 AB. c'est une règle immuable. et l'extraction se décompose sur trois colonnes comme dans mon tableau.

    Le fait d'avoir modifier le tableau comme je l'ai fait donne un très mauvaise idée pour atteindre le résultat..

    Ton idée fonctionne mais ne correspond pas à ce que je recherche.

    je m'en excuse, suis je plus explicite ?

    ci joint le tableau

    https://www.cjoint.com/?3LBufBpcQ2J feuil1

    Cordialement
    0
    1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       
      Bonjour capeo,
      Finalement je vous livre, quand même, ma proposition (voir feuille [Msg2712]) : https://www.cjoint.com/?3LDs5h2NdiV
      Salutations.
      Le Pingou
      0
  9. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir

    Un essai d'après ton dernier fichier, en rajoutant un tableau intermédiaire
    https://www.cjoint.com/?0LBwvOADKd6

    il y a sans doute plus simple mais pour l'instant je n'ai trouvé que cela qui fonctionne

    Cdlmnt
    0
    1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       
      Bonjour,
      Merci, je vous laisse le plaisir de la suite.... !
      Salutations.
      Le Pingou
      0
    2. capeo Messages postés 188 Statut Membre
       
      Bonjour

      Au vu des deux réponses que j'ai reçu ça serait ta réponse qui correspondrait à ma demande initiale sans macro, mais je pense qu'avec macro c'est plus facile.

      Je te remercie et te souhaite une bonne année 2015.

      Capeo
      0
    3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Bonjour

      Entièrement d'accord avec toi la macro est plus pratique, mais comme tu avais demandé sans macro je ne t'en avais pas proposé une !

      Bonne année également et bonne suite
      Merci de passer en résolu (en haut à droite)

      Cdlmnt
      0
      1. capeo Messages postés 188 Statut Membre > via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention  
         
        bonjour

        en fait je n'ai pas terminer car j'ai omis de dire que le tableau est plus grand ce qui fait que la macro fonctionne que lorsque je fais une extraction de mon tableau.
        0
  10. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonjour,

    voici, après tes 25 explications de moins en moins obscures, une proposition avec macro.

    j'ai rarement fait un code aussi rapiécé, mais il semble fonctionner sur ton exemple.....
    vérifie sa solidité.

    https://www.cjoint.com/c/DLCksH6Dbrw

    cordialement
    0
    1. capeo Messages postés 188 Statut Membre
       
      Bonjour

      Ta macro fonctionne correctement mais ne s'applique pas à mon tableau. Mon tableau s'étend de la colonne A à la colonne R. et en nombre de lignes cela donne 27000 lignes environs.
      Peux tu faire quelque chose ?

      Bonne année 2015

      Capeo
      0
    2. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       
      Bonjour,
      Avez-vous au moins essayé ma proposition....!
      J'en doute...!
      Bonne Année
      Salutations.
      Le Pingou
      0
  11. capeo Messages postés 188 Statut Membre
     
    Bonjour

    j'ai essayé votre macro c'est pour moi la moindre des choses quand une personne m'aide. Votre macro fonctionne avec une extraction de mon gros tableau. Maintenant je ne suis pas un expert peut être y a t il une astuce ?

    salutation

    Capeo
    0
  12. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Eh bien, quel que soit le nombre de ligne de votre tableau, la procédure en tient compte...
    Essayez de modifier le nombre des lignes .... Quelle est votre constat ?

    0
  13. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Votre demande portait sur 3 colonnes et finalement il y en a 17 ....... ?
    Ce n'est pas pareil..... et toujours pas d'exemple sur le résultat à obtenir .... !

    0
  14. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Alors à ma façon : voir feuille [Msg010115] avec résultat sur [NvStructure]... !
    Ma proposition : https://www.cjoint.com/?3AbrKrjw4ty

    0
  15. capeo Messages postés 188 Statut Membre
     
    Bonjour

    Ta macro fonctionne mais elle m'écrase les données dans la plage D2:Q20 que j'ai matérialisé en gris. Peut être faire autrement, car je ne vois pas me réassocier les données manquantes pour 2 ou 3 lignes cela irait mais la cela concerne des centaines de ligne.

    Pour le résultat à obtenir il est toujours le même.

    Peux tu faire autrement ?

    Salutations

    Capeo
    0
  16. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Je ne comprends pas : <ital>Ta macro fonctionne mais elle m'écrase les données dans la plage D2:Q20
    La procédure reprend toutes les valeurs des cellules grisées ... !
    Faites donc une copie d'écran du résultat obtenue et la mettre sur un document Word que vous mettez sur cjoint.com et me donner le lien.
    0
  17. capeo Messages postés 188 Statut Membre
     
    Bonjour

    Tout à l'heure j'ai parlé trop vite. La macro bug et se plante quand j'ai tout le tableau.

    ci joint une extraction avec les données que j'ai matérialisé avec des XXX.

    https://www.cjoint.com/?3AbtAG7obbr

    le fichier complet :

    https://www.cjoint.com/?3AbtXfIZuyR

    cordialement

    capeo
    0
    1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       
      Bonjour,
      J'ai contrôlé, tout marche correctement avec vos données : https://www.cjoint.com/?3AbxbPqAqxK
      Salutations.
      Le Pingou
      0
      1. capeo Messages postés 188 Statut Membre > Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour,

        j'ai fait un essai et je te joins le message d'erreur

        https://www.cjoint.com/?3AcodqBgTfJ

        cordialement

        capeo
        0
  18. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonsoir,

    essaye ça :
    Option Base 1

    Sub capeo()

    Dim i, j, n, deb As Integer
    Dim cible(), enreg
    i = 1: j = 1
    Set enreg = Selection()
    n = enreg.Rows.Count
    ReDim cible(2 * n, 17)
    If "Basic" = enreg.Cells(1, 3) Or enreg.Cells(1, 3) = "" Then deb = 2 Else deb = 1
    cible(1, 1) = enreg.Cells(1, 1): cible(1, 2) = "": cible(1, 3) = "Basic"
    For k = 4 To 17: cible(j, k) = enreg.Cells(i, k): Next

    For i = deb To n
    If enreg.Cells(i, 3) = "Basic" Or enreg.Cells(i, 3) = "" Or (cible(j, 1) = enreg.Cells(i, 1) And cible(j, 2) = enreg.Cells(i, 2)) Then
    j = j + 1
    cible(j, 1) = enreg.Cells(i, 1): cible(j, 2) = enreg.Cells(i, 2) & ""
    If "" = enreg.Cells(i, 3) Then cible(j, 3) = "Basic" Else cible(j, 3) = enreg.Cells(i, 3)
    For k = 4 To 17: cible(j, k) = enreg.Cells(i, k): Next
    Else
    If cible(j, 1) <> enreg.Cells(i, 1) Or cible(j, 2) <> enreg.Cells(i, 2) Or cible(j, 3) <> enreg.Cells(i, 3) Then
    If cible(j, 3) <> "Basic" Or (cible(j, 1) <> enreg.Cells(i, 1) And cible(j, 2) <> enreg.Cells(i, 2)) Then
    j = j + 1
    cible(j, 1) = enreg.Cells(i, 1): cible(j, 2) = "": cible(j, 3) = "Basic"
    For k = 4 To 17: cible(j, k) = enreg.Cells(i, k): Next
    End If
    If "" <> enreg.Cells(i, 3) Then
    j = j + 1
    cible(j, 1) = enreg.Cells(i, 1): cible(j, 2) = enreg.Cells(i, 2) & "": cible(j, 3) = enreg.Cells(i, 3)
    For k = 4 To 17: cible(j, k) = enreg.Cells(i, k): Next
    End If
    End If
    End If
    Next
    enreg.Offset(0, 18).Resize(j, 17) = cible

    End Sub

    cordialement
    0
  • 1
  • 2