J'ai fait la proc=E9dure suivante, qui consiste a regrouper=20
les trois premiers caract=E8res de chaque mot conteneu dans=20
une cellule, jusqu'=E0 un maximum de neuf caract=E8res. La=20
seule exception est que si la cellule ne contient qu'un=20
mot , je regroupe les 9 premier caract=E8res.
Les espaces dans la cellule d=E9limite les mots
exemple:
A C EKARE EDICIONES on obtient=20
ACEKAEDI
et pour=20
ADN EDITORES on obtient
ADNEDI
J'aimerais avoir le m=EAme r=E9sultat, mais sans pass=E9 par les=20
copie de formule dans Excel et d'effacement de colonne. =20
En d'autre terme la proc=E9dure devrait prendre en charge le=20
mot dans la cellule et aficher le r=E9sultat dans la cellule=20
voisine
merci et bonne fin de journ=E9e
Sub shortName()
Dim rngA As Range
Dim rngtarget As Range
=20
'------------------
'SEPARE LES ESPACES EN COLLONNES
'remplace la formule par la valeur
Set rngtarget =3D Range(Cells(1, "j"), Cells
(Rows.Count, "j").End(xlUp))
rngtarget.Select
Selection.Copy
Selection.PasteSpecial Paste:=3DxlValues,=20
Operation:=3DxlNone, SkipBlanks:=3D _
False, Transpose:=3DFalse
'detruit les colonnes de B =E0 I
Columns("B:I").EntireColumn.Select
Selection.Delete Shift:=3DxlToLeft
Si tu as Excel 2000 ou plus récent, tu sélectionnes l'ensemble des cellules à traiter et tu roules la procédure Test3.
Sub Test3() Dim C As Range For Each C In Selection C(1, 2).Value = Les3Premiers(C.Value) Next C End Sub
Public Function Les3Premiers(txt As String) As String Dim tmp As String, V As Variant Dim i As Integer, j As Integer, k As Integer V = Split(txt) i = LBound(V) j = UBound(V) If i = j Then ' 1 seul mot tmp = Left(Trim(txt), 9) 'prend les 9 prem lettres Else For k = i To j tmp = tmp & Left(V(k), 3) Next k End If Les3Premiers = Left(tmp, 9) End Function
Salutations,
Daniel M.
"Benito" wrote in message news:307501c470fc$88baa7a0$ Bonjour a tous,
J'ai fait la procédure suivante, qui consiste a regrouper les trois premiers caractères de chaque mot conteneu dans une cellule, jusqu'à un maximum de neuf caractères. La seule exception est que si la cellule ne contient qu'un mot , je regroupe les 9 premier caractères.
Les espaces dans la cellule délimite les mots exemple:
A C EKARE EDICIONES on obtient ACEKAEDI
et pour ADN EDITORES on obtient
ADNEDI
J'aimerais avoir le même résultat, mais sans passé par les copie de formule dans Excel et d'effacement de colonne. En d'autre terme la procédure devrait prendre en charge le mot dans la cellule et aficher le résultat dans la cellule voisine
merci et bonne fin de journée
Sub shortName()
Dim rngA As Range Dim rngtarget As Range
'------------------ 'SEPARE LES ESPACES EN COLLONNES
'remplace la formule par la valeur Set rngtarget = Range(Cells(1, "j"), Cells (Rows.Count, "j").End(xlUp)) rngtarget.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse
'detruit les colonnes de B à I Columns("B:I").EntireColumn.Select Selection.Delete Shift:=xlToLeft
End Sub
Benito,
Si tu as Excel 2000 ou plus récent, tu sélectionnes l'ensemble des cellules à
traiter et tu roules la procédure Test3.
Sub Test3()
Dim C As Range
For Each C In Selection
C(1, 2).Value = Les3Premiers(C.Value)
Next C
End Sub
Public Function Les3Premiers(txt As String) As String
Dim tmp As String, V As Variant
Dim i As Integer, j As Integer, k As Integer
V = Split(txt)
i = LBound(V)
j = UBound(V)
If i = j Then ' 1 seul mot
tmp = Left(Trim(txt), 9) 'prend les 9 prem lettres
Else
For k = i To j
tmp = tmp & Left(V(k), 3)
Next k
End If
Les3Premiers = Left(tmp, 9)
End Function
Salutations,
Daniel M.
"Benito" <ben_bro_mex@yahoo.ca> wrote in message
news:307501c470fc$88baa7a0$a401280a@phx.gbl...
Bonjour a tous,
J'ai fait la procédure suivante, qui consiste a regrouper
les trois premiers caractères de chaque mot conteneu dans
une cellule, jusqu'à un maximum de neuf caractères. La
seule exception est que si la cellule ne contient qu'un
mot , je regroupe les 9 premier caractères.
Les espaces dans la cellule délimite les mots
exemple:
A C EKARE EDICIONES on obtient
ACEKAEDI
et pour
ADN EDITORES on obtient
ADNEDI
J'aimerais avoir le même résultat, mais sans passé par les
copie de formule dans Excel et d'effacement de colonne.
En d'autre terme la procédure devrait prendre en charge le
mot dans la cellule et aficher le résultat dans la cellule
voisine
merci et bonne fin de journée
Sub shortName()
Dim rngA As Range
Dim rngtarget As Range
'------------------
'SEPARE LES ESPACES EN COLLONNES
'remplace la formule par la valeur
Set rngtarget = Range(Cells(1, "j"), Cells
(Rows.Count, "j").End(xlUp))
rngtarget.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
'detruit les colonnes de B à I
Columns("B:I").EntireColumn.Select
Selection.Delete Shift:=xlToLeft
Si tu as Excel 2000 ou plus récent, tu sélectionnes l'ensemble des cellules à traiter et tu roules la procédure Test3.
Sub Test3() Dim C As Range For Each C In Selection C(1, 2).Value = Les3Premiers(C.Value) Next C End Sub
Public Function Les3Premiers(txt As String) As String Dim tmp As String, V As Variant Dim i As Integer, j As Integer, k As Integer V = Split(txt) i = LBound(V) j = UBound(V) If i = j Then ' 1 seul mot tmp = Left(Trim(txt), 9) 'prend les 9 prem lettres Else For k = i To j tmp = tmp & Left(V(k), 3) Next k End If Les3Premiers = Left(tmp, 9) End Function
Salutations,
Daniel M.
"Benito" wrote in message news:307501c470fc$88baa7a0$ Bonjour a tous,
J'ai fait la procédure suivante, qui consiste a regrouper les trois premiers caractères de chaque mot conteneu dans une cellule, jusqu'à un maximum de neuf caractères. La seule exception est que si la cellule ne contient qu'un mot , je regroupe les 9 premier caractères.
Les espaces dans la cellule délimite les mots exemple:
A C EKARE EDICIONES on obtient ACEKAEDI
et pour ADN EDITORES on obtient
ADNEDI
J'aimerais avoir le même résultat, mais sans passé par les copie de formule dans Excel et d'effacement de colonne. En d'autre terme la procédure devrait prendre en charge le mot dans la cellule et aficher le résultat dans la cellule voisine
merci et bonne fin de journée
Sub shortName()
Dim rngA As Range Dim rngtarget As Range
'------------------ 'SEPARE LES ESPACES EN COLLONNES
'remplace la formule par la valeur Set rngtarget = Range(Cells(1, "j"), Cells (Rows.Count, "j").End(xlUp)) rngtarget.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse
'detruit les colonnes de B à I Columns("B:I").EntireColumn.Select Selection.Delete Shift:=xlToLeft
End Sub
benito
Merci Daniel
C'est exactemement ce que je voulais faire
ton aide est grandement apprécié
Benito
-----Message d'origine----- Benito,
Si tu as Excel 2000 ou plus récent, tu sélectionnes l'ensemble des cellules à
traiter et tu roules la procédure Test3.
Sub Test3() Dim C As Range For Each C In Selection C(1, 2).Value = Les3Premiers(C.Value) Next C End Sub
Public Function Les3Premiers(txt As String) As String Dim tmp As String, V As Variant Dim i As Integer, j As Integer, k As Integer V = Split(txt) i = LBound(V) j = UBound(V) If i = j Then ' 1 seul mot tmp = Left(Trim(txt), 9) 'prend les 9 prem lettres Else For k = i To j tmp = tmp & Left(V(k), 3) Next k End If Les3Premiers = Left(tmp, 9) End Function
Salutations,
Daniel M.
"Benito" wrote in message news:307501c470fc$88baa7a0$ Bonjour a tous,
J'ai fait la procédure suivante, qui consiste a regrouper les trois premiers caractères de chaque mot conteneu dans une cellule, jusqu'à un maximum de neuf caractères. La seule exception est que si la cellule ne contient qu'un mot , je regroupe les 9 premier caractères.
Les espaces dans la cellule délimite les mots exemple:
A C EKARE EDICIONES on obtient ACEKAEDI
et pour ADN EDITORES on obtient
ADNEDI
J'aimerais avoir le même résultat, mais sans passé par les copie de formule dans Excel et d'effacement de colonne. En d'autre terme la procédure devrait prendre en charge le mot dans la cellule et aficher le résultat dans la cellule voisine
merci et bonne fin de journée
Sub shortName()
Dim rngA As Range Dim rngtarget As Range
'------------------ 'SEPARE LES ESPACES EN COLLONNES
'remplace la formule par la valeur Set rngtarget = Range(Cells(1, "j"), Cells (Rows.Count, "j").End(xlUp)) rngtarget.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse
'detruit les colonnes de B à I Columns("B:I").EntireColumn.Select Selection.Delete Shift:=xlToLeft
End Sub
.
Merci Daniel
C'est exactemement ce que je voulais faire
ton aide est grandement apprécié
Benito
-----Message d'origine-----
Benito,
Si tu as Excel 2000 ou plus récent, tu sélectionnes
l'ensemble des cellules à
traiter et tu roules la procédure Test3.
Sub Test3()
Dim C As Range
For Each C In Selection
C(1, 2).Value = Les3Premiers(C.Value)
Next C
End Sub
Public Function Les3Premiers(txt As String) As String
Dim tmp As String, V As Variant
Dim i As Integer, j As Integer, k As Integer
V = Split(txt)
i = LBound(V)
j = UBound(V)
If i = j Then ' 1 seul mot
tmp = Left(Trim(txt), 9) 'prend les 9 prem lettres
Else
For k = i To j
tmp = tmp & Left(V(k), 3)
Next k
End If
Les3Premiers = Left(tmp, 9)
End Function
Salutations,
Daniel M.
"Benito" <ben_bro_mex@yahoo.ca> wrote in message
news:307501c470fc$88baa7a0$a401280a@phx.gbl...
Bonjour a tous,
J'ai fait la procédure suivante, qui consiste a regrouper
les trois premiers caractères de chaque mot conteneu dans
une cellule, jusqu'à un maximum de neuf caractères. La
seule exception est que si la cellule ne contient qu'un
mot , je regroupe les 9 premier caractères.
Les espaces dans la cellule délimite les mots
exemple:
A C EKARE EDICIONES on obtient
ACEKAEDI
et pour
ADN EDITORES on obtient
ADNEDI
J'aimerais avoir le même résultat, mais sans passé par les
copie de formule dans Excel et d'effacement de colonne.
En d'autre terme la procédure devrait prendre en charge le
mot dans la cellule et aficher le résultat dans la cellule
voisine
merci et bonne fin de journée
Sub shortName()
Dim rngA As Range
Dim rngtarget As Range
'------------------
'SEPARE LES ESPACES EN COLLONNES
'remplace la formule par la valeur
Set rngtarget = Range(Cells(1, "j"), Cells
(Rows.Count, "j").End(xlUp))
rngtarget.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'detruit les colonnes de B à I
Columns("B:I").EntireColumn.Select
Selection.Delete Shift:=xlToLeft
Si tu as Excel 2000 ou plus récent, tu sélectionnes l'ensemble des cellules à
traiter et tu roules la procédure Test3.
Sub Test3() Dim C As Range For Each C In Selection C(1, 2).Value = Les3Premiers(C.Value) Next C End Sub
Public Function Les3Premiers(txt As String) As String Dim tmp As String, V As Variant Dim i As Integer, j As Integer, k As Integer V = Split(txt) i = LBound(V) j = UBound(V) If i = j Then ' 1 seul mot tmp = Left(Trim(txt), 9) 'prend les 9 prem lettres Else For k = i To j tmp = tmp & Left(V(k), 3) Next k End If Les3Premiers = Left(tmp, 9) End Function
Salutations,
Daniel M.
"Benito" wrote in message news:307501c470fc$88baa7a0$ Bonjour a tous,
J'ai fait la procédure suivante, qui consiste a regrouper les trois premiers caractères de chaque mot conteneu dans une cellule, jusqu'à un maximum de neuf caractères. La seule exception est que si la cellule ne contient qu'un mot , je regroupe les 9 premier caractères.
Les espaces dans la cellule délimite les mots exemple:
A C EKARE EDICIONES on obtient ACEKAEDI
et pour ADN EDITORES on obtient
ADNEDI
J'aimerais avoir le même résultat, mais sans passé par les copie de formule dans Excel et d'effacement de colonne. En d'autre terme la procédure devrait prendre en charge le mot dans la cellule et aficher le résultat dans la cellule voisine
merci et bonne fin de journée
Sub shortName()
Dim rngA As Range Dim rngtarget As Range
'------------------ 'SEPARE LES ESPACES EN COLLONNES
'remplace la formule par la valeur Set rngtarget = Range(Cells(1, "j"), Cells (Rows.Count, "j").End(xlUp)) rngtarget.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse
'detruit les colonnes de B à I Columns("B:I").EntireColumn.Select Selection.Delete Shift:=xlToLeft