Comment mettre un espace entre deux valeurs diférentes ?
Résolucapeo Messages postés 188 Statut Membre -
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
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.
-
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] .... !
-
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.
-
-
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 ...
-
Bonjour,
Certainement sans macro, avec une colonne supplémentaire pour le calcul, mais est-il possible de connaitre la structure du tableau....?
-
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é !
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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-
je n'y arrive pas mais peut être que le tableau que je fourni est plus explicite
https://www.cjoint.com/?3Lxs1tsAL67
merci
-
-
Bonjour
ci joint un tableau qui illustre au mieux ce que je recherche
https://www.cjoint.com/?3Lxs1tsAL67
c'est peut être plus compréhensible ? -
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 .... ?
-
-
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-
Bonjour capeo,
Finalement je vous livre, quand même, ma proposition (voir feuille [Msg2712]) : https://www.cjoint.com/?3LDs5h2NdiV
Salutations.
Le Pingou
-
-
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
-
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 -
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 -
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 ?
-
bonjour
je pense que le pb vient du nombre de colonne.
ci joint le tableau
https://www.cjoint.com/?3Abp0PX81HG
salutation
Capeo -
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 .... !
-
Bonjour,
Alors à ma façon : voir feuille [Msg010115] avec résultat sur [NvStructure]... !
Ma proposition : https://www.cjoint.com/?3AbrKrjw4ty
-
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 -
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. -
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-
Bonjour,
J'ai contrôlé, tout marche correctement avec vos données : https://www.cjoint.com/?3AbxbPqAqxK
Salutations.
Le Pingou- Bonjour,
j'ai fait un essai et je te joins le message d'erreur
https://www.cjoint.com/?3AcodqBgTfJ
cordialement
capeo
-
-
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
- 1
- 2