Endroit précis dans une cellule

Le
Denys
Bonjour à tous,

Petite énigme pour vous Je voudrais "concatener" le contenu de
différentes cellules, mais voudrais que ce contenu s'inscrive à un
endroit précis dans une cellule..par exemple:

En A1 j'ai 1 en B1 j'ai Pierre en C1 j'ai Rue de Paris

En A2 j'ai 123 en B2 j'ai Claude en C2 j'ai Rue Lanouette

Alors, comme résultat je voudrais en A3 et A4 respectivement:

1 Pierre Rue de Paris
123 Claude Rue Lanouette

Voici où j'en suis:

ActiveCell.Formula = "=LEFT(A1&REPT("" "",11),11)&LEFT(B1&REPT("" "",
11),11)&LEFT(C1&REPT("" "",2),9)"

Le problème c'est quand en A1 le nombre n'a qu'un chiffre, tout le
reste est décalé et ça va de même avec les prénoms et adresse.=
.

Coment s'assurer que chaque début de cellule "concatenée" débute au
même endroit ?

Pas évident

Merci pour votre temps

Denys
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacquouille
Le #25448992
Bonjour
Un simple ¡&" "&B1&" "&C1 ne suffirait pas ?



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Denys" a écrit dans le message de groupe de discussion :


Bonjour à tous,

Petite énigme pour vous...... Je voudrais "concatener" le contenu de
différentes cellules, mais voudrais que ce contenu s'inscrive à un
endroit précis dans une cellule.....par exemple:

En A1 j'ai 1 en B1 j'ai Pierre en C1 j'ai Rue de Paris

En A2 j'ai 123 en B2 j'ai Claude en C2 j'ai Rue Lanouette

Alors, comme résultat je voudrais en A3 et A4 respectivement:

1 Pierre Rue de Paris
123 Claude Rue Lanouette

Voici où j'en suis:

ActiveCell.Formula = "=LEFT(A1&REPT("" "",11),11)&LEFT(B1&REPT("" "",
11),11)&LEFT(C1&REPT("" "",2),9)"

Le problème c'est quand en A1 le nombre n'a qu'un chiffre, tout le
reste est décalé... et ça va de même avec les prénoms et adresse.....

Coment s'assurer que chaque début de cellule "concatenée" débute au
même endroit ?

Pas évident...

Merci pour votre temps

Denys
Denys
Le #25448972
Bonjour Jacquouille,

Non.....mais laissez tomber, je vais m'y prendre autrement car il y a
trop de variable.....(il vient de s'en rajouter d'autres)

Merci bien

Denys
LSteph
Le #25450112
Bonjour,


Si tes Chiffres peuvent aller de 1 à 9999 (au pire)
je mettrais format(a1,"0000")

--
LSteph


"Denys" news:
Bonjour à tous,

Petite énigme pour vous...... Je voudrais "concatener" le contenu de
différentes cellules, mais voudrais que ce contenu s'inscrive à un
endroit précis dans une cellule.....par exemple:

En A1 j'ai 1 en B1 j'ai Pierre en C1 j'ai Rue de Paris

En A2 j'ai 123 en B2 j'ai Claude en C2 j'ai Rue Lanouette

Alors, comme résultat je voudrais en A3 et A4 respectivement:

1 Pierre Rue de Paris
123 Claude Rue Lanouette

Voici où j'en suis:

ActiveCell.Formula = "=LEFT(A1&REPT("" "",11),11)&LEFT(B1&REPT("" "",
11),11)&LEFT(C1&REPT("" "",2),9)"

Le problème c'est quand en A1 le nombre n'a qu'un chiffre, tout le
reste est décalé... et ça va de même avec les prénoms et adresse.....

Coment s'assurer que chaque début de cellule "concatenée" débute au
même endroit ?

Pas évident...

Merci pour votre temps

Denys
GL
Le #25450252
Le 31/05/2013 16:02, Denys a écrit :
Bonjour Jacquouille,

Non.....mais laissez tomber, je vais m'y prendre autrement car il y a
trop de variable.....(il vient de s'en rajouter d'autres)

Merci bien

Denys




Moi j'utilise une fonction IMPLODE (équivalent de php implode)
qui concatène un tableau avec des séparateurs.

= IMPLODE(tableau;séparateur)

le séparateur est optionnel (par défaut il n'y en a pas).

Pour le décalage vous pouvez utiliser par exemple :

SI(A1 < 10 ; " " ; "" ) & SI( A1 < 100 ; " " ; "" )

et utiliser une police à chasse fixe (courier new par exemple).


Pour info je vous en donne gracieusement le code :

Public Function IMPLODE(R, Optional sep$ = vbNullString)
Dim i&, j&, row&, Col&, res$
If TypeOf R Is Range Then R = R.Value
row = UBound(R, 1)
On Error Resume Next: Col = UBound(R, 2): On Error GoTo 0
If Col > 0 Then
For i = 1 To row
For j = 1 To Col
If IsError(R(i, j)) Then GoTo Nextj
If IsEmpty(R(i, j)) Then GoTo Nextj
If R(i, j) = vbNullString Then GoTo Nextj
res = res & sep & R(i, j)
Nextj:
Next j
Next i
Else
For i = 1 To row
If IsError(R(i)) Then GoTo Nexti
If IsEmpty(R(i)) Then GoTo Nexti
If R(i) = vbNullString Then GoTo Nexti
res = res & sep & R(i)
Nexti:
Next i
End If
If res = vbNullString Then IMPLODE = vbNullString: Exit Function
IMPLODE = Mid(res, Len(sep) + 1, Len(res))
End Function


Cela donne par exemple :

=SI(A1<10;" ";"") & SI(A1<100;" ";"") & IMPLODE(A1:C1;" ")

Cordialement.
DanielCo
Le #25450322
Bonjour,

Pour des champs de 8 et 15 caractères :
=TEXTE(A4;"#")&REPT(" ";8-NBCAR(TEXTE(A4;"#")))&B4&REPT("
";15-NBCAR(C4))&C4
Il ne doit pas y avoir de dépassement, sinon :
=GAUCHE(TEXTE(A4;"#");8)&REPT("
";8-NBCAR(GAUCHE(TEXTE(A4;"#");8)))&GAUCHE(B4;15)&REPT("
";15-NBCAR(GAUCHE(B4;15)))&C4
On peut aussi limiter la longueur 3e champ.
Daniel


Bonjour à tous,

Petite énigme pour vous...... Je voudrais "concatener" le contenu de
différentes cellules, mais voudrais que ce contenu s'inscrive à un
endroit précis dans une cellule.....par exemple:

En A1 j'ai 1 en B1 j'ai Pierre en C1 j'ai Rue de Paris

En A2 j'ai 123 en B2 j'ai Claude en C2 j'ai Rue Lanouette

Alors, comme résultat je voudrais en A3 et A4 respectivement:

1 Pierre Rue de Paris
123 Claude Rue Lanouette

Voici où j'en suis:

ActiveCell.Formula = "=LEFT(A1&REPT("" "",11),11)&LEFT(B1&REPT("" "",
11),11)&LEFT(C1&REPT("" "",2),9)"

Le problème c'est quand en A1 le nombre n'a qu'un chiffre, tout le
reste est décalé... et ça va de même avec les prénoms et adresse.....

Coment s'assurer que chaque début de cellule "concatenée" débute au
même endroit ?

Pas évident...

Merci pour votre temps

Denys
Denys
Le #25455752
Bonjour Daniel et GL,

Merci beaucoup pour vos suggestions.....je vais les conserver....

Denys

On Jun 1, 4:56 am, DanielCo
Bonjour,

Pour des champs de 8 et 15 caract res :
=TEXTE(A4;"#")&REPT(" ";8-NBCAR(TEXTE(A4;"#")))&B4&REPT("
";15-NBCAR(C4))&C4
Il ne doit pas y avoir de d passement, sinon :
=GAUCHE(TEXTE(A4;"#");8)&REPT("
";8-NBCAR(GAUCHE(TEXTE(A4;"#");8)))&GAUCHE(B4;15)&REPT("
";15-NBCAR(GAUCHE(B4;15)))&C4
On peut aussi limiter la longueur 3e champ.
Daniel



> Bonjour tous,

> Petite nigme pour vous...... Je voudrais "concatener" le contenu de
> diff rentes cellules, mais voudrais que ce contenu s'inscrive un
> endroit pr cis dans une cellule.....par exemple:

> En A1 j'ai 1 en B1 j'ai Pierre en C1 j'ai Rue de Paris

> En A2 j'ai 123 en B2 j'ai Claude en C2 j'ai Rue Lanouette

> Alors, comme r sultat je voudrais en A3 et A4  respectivement:

> 1      Pierre     Rue de Paris
> 123  Claude    Rue Lanouette

> Voici o j'en suis:

> ActiveCell.Formula = "=LEFT(A1&REPT("" "",11),11)&LEFT(B1&REPT("" " ",
> 11),11)&LEFT(C1&REPT("" "",2),9)"

> Le probl me c'est quand en A1 le nombre n'a qu'un chiffre, tout le
> reste est d cal ... et a va de m me avec les pr noms et adresse.....

> Coment s'assurer que chaque d but de cellule "concaten e" d bute au
> m me endroit ?

> Pas vident...

> Merci pour votre temps

> Denys- Hide quoted text -

- Show quoted text -
Publicité
Poster une réponse
Anonyme