Range VBA

Le
Albert
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la fin)
et la colonne B (B2 jusqu'à la fin)?
-
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
--

Merci

--
albertri-at-videotron.ca.invalid
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #26324589
Bonsoir,

...pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2 jusqu'à la fin)


'----------------
For Each c In Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row)
c.Value = Sans_accents$(c.Value)
Next
'--------------
--
Salutations
JJ


"Albert"
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2 jusqu'à la
fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
--------------------------------------------

Merci

--
albertri-at-videotron.ca.invalid
Jacky
Le #26324590
Re..
Si une colonne peut-être plus longue que l'autre..
'----------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, col As Long
col = IIf([countA(A:A)] > [countA(b:b)], 1, 2)
For Each c In Range("a2:b" & Cells(Rows.Count, col).End(xlUp).Row)
If c <> "" Then c.Value = Sans_accents$(c.Value)
Next c
End Sub
'----------------

--
Salutations
JJ


"Jacky"
Bonsoir,

...pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2 jusqu'à la fin)


'----------------
For Each c In Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row)
c.Value = Sans_accents$(c.Value)
Next
'--------------
--
Salutations
JJ


"Albert"
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2 jusqu'à la
fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
--------------------------------------------

Merci

--
albertri-at-videotron.ca.invalid




Jacquouille
Le #26324592
Bonsoir Jacky,
Juste une question: -)
Je sais que c'est la fin de semaine, mais, n'y aurait-il pas lieu de
demander poliment à Excel quelle colonne est la plus longue ( a ou b), vu
que le demandeur semble y faire allusion, mais sans le dire?
Un truc du genre (non testé) ????
derLA= [A65536].End(3).Row
derLB= [B65536].End(3).Row
if derLA>derLB then derLÞrLA:else derLÞrLB
For Each c In Range("a2:b" & derL)
[c] = Sans_accents$(c.Value)
Next

Bonne soirée
Jacques.


Jacquouille

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

Bonsoir,

...pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2 jusqu'à
la fin)


'----------------
For Each c In Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row)
c.Value = Sans_accents$(c.Value)
Next
'--------------
--
Salutations
JJ


"Albert" m4qpev$cip$
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la fin)
et la colonne B (B2 jusqu'à la fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
--------------------------------------------

Merci

--
albertri-at-videotron.ca.invalid




---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Jacky
Le #26324593
Hello Jacques,
[A65536].End(3).Row
Beurggg!
Ne fonctionne pas si les lignes sont plus longues que 65536.
Je préfère
Cells(Rows.Count, 1).End(xlUp).Row

Perso , je ferai comme ceci
'----------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, col As Long
'col retourne la colonne la plus longue: soit 1(A) soit 2(B)
col = IIf(Cells(Rows.Count, 1).End(xlUp).Row > Cells(Rows.Count, 2).End(xlUp).Row, 1, 2)
For Each c In Range("a2:b" & Cells(Rows.Count, col).End(xlUp).Row)
If c <> "" Then c.Value = Sans_accents$(c.Value)
Next c
End Sub
'------------------

--
Salutations
JJ


"Jacquouille"
Bonsoir Jacky,
Juste une question: -)
Je sais que c'est la fin de semaine, mais, n'y aurait-il pas lieu de demander poliment à Excel quelle
colonne est la plus longue ( a ou b), vu que le demandeur semble y faire allusion, mais sans le dire?
Un truc du genre (non testé) ????
derLA= [A65536].End(3).Row
derLB= [B65536].End(3).Row
if derLA>derLB then derLÞrLA:else derLÞrLB
For Each c In Range("a2:b" & derL)
[c] = Sans_accents$(c.Value)
Next

Bonne soirée
Jacques.


Jacquouille

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

Bonsoir,

...pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2 jusqu'à la fin)


'----------------
For Each c In Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row)
c.Value = Sans_accents$(c.Value)
Next
'--------------
--
Salutations
JJ


"Albert"
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2 jusqu'à la
fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
--------------------------------------------

Merci

--
albertri-at-videotron.ca.invalid




---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast!
Antivirus est active.
http://www.avast.com

Albert
Le #26324598
Merci Jacky
La correction faiisait bien, mais effectivement les colonnes peuvent être de
différentes longueurs.
Je reteste plus tard ce soir, maintenant on m'attend pour souper... et je
reviens.

Merci

Albert


"Jacky" news:m4qsr5$pb2$
Re..
Si une colonne peut-être plus longue que l'autre..
'----------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, col As Long
col = IIf([countA(A:A)] > [countA(b:b)], 1, 2)
For Each c In Range("a2:b" & Cells(Rows.Count, col).End(xlUp).Row)
If c <> "" Then c.Value = Sans_accents$(c.Value)
Next c
End Sub
'----------------

--
Salutations
JJ


"Jacky" m4qr6o$i3g$
Bonsoir,

...pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2
jusqu'à la fin)


'----------------
For Each c In Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row)
c.Value = Sans_accents$(c.Value)
Next
'--------------
--
Salutations
JJ


"Albert" m4qpev$cip$
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la
fin) et la colonne B (B2 jusqu'à la fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
--------------------------------------------

Merci

--
albertri-at-videotron.ca.invalid








GL
Le #26324597
Le 22/11/2014 20:50, Albert a écrit :
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la
fin) et la colonne B (B2 jusqu'à la fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub



Je propose au plus court (mais évidemment c'est pas hyper général,
par contre c'est plus facile pour s'en souvenir peut-être...)

For Each c In Intersect([A2].Worksheet.UsedRange, [A2:B999999])
...
Next
Jacquouille
Le #26324601
Pourquoi tu testes si c n'est pas vide? Si vide = pas d'accent ....
Pour les + de 65.000 lignes, tu as raison. mais, je n'y pense jamais car je
suis toujours en 2003. (manière de ne pas vieillir). -))
Bonne soirée
Jacques.


Jacquouille

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

Hello Jacques,
[A65536].End(3).Row
Beurggg!
Ne fonctionne pas si les lignes sont plus longues que 65536.
Je préfère
Cells(Rows.Count, 1).End(xlUp).Row

Perso , je ferai comme ceci
'----------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, col As Long
'col retourne la colonne la plus longue: soit 1(A) soit 2(B)
col = IIf(Cells(Rows.Count, 1).End(xlUp).Row > Cells(Rows.Count,
2).End(xlUp).Row, 1, 2)
For Each c In Range("a2:b" & Cells(Rows.Count, col).End(xlUp).Row)
If c <> "" Then c.Value = Sans_accents$(c.Value)
Next c
End Sub
'------------------

--
Salutations
JJ


"Jacquouille" m4qt6l$qub$
Bonsoir Jacky,
Juste une question: -)
Je sais que c'est la fin de semaine, mais, n'y aurait-il pas lieu de
demander poliment à Excel quelle colonne est la plus longue ( a ou b), vu
que le demandeur semble y faire allusion, mais sans le dire?
Un truc du genre (non testé) ????
derLA= [A65536].End(3).Row
derLB= [B65536].End(3).Row
if derLA>derLB then derLÞrLA:else derLÞrLB
For Each c In Range("a2:b" & derL)
[c] = Sans_accents$(c.Value)
Next

Bonne soirée
Jacques.


Jacquouille

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

Bonsoir,

...pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2
jusqu'à la fin)


'----------------
For Each c In Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row)
c.Value = Sans_accents$(c.Value)
Next
'--------------
--
Salutations
JJ


"Albert" m4qpev$cip$
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la
fin) et la colonne B (B2 jusqu'à la fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
--------------------------------------------

Merci

--
albertri-at-videotron.ca.invalid




---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant
parce que la protection avast! Antivirus est active.
http://www.avast.com





---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Jacky
Le #26324602
Re..
Pourquoi tu testes si c n'est pas vide? Si vide = pas d'accent


Ben OUI, donc pas besoin de faire appel à la fonction "Sans_accents$"
En plus on ne voit pas ce qu'elle fait cette fonction..
Enlever un accents sur une cellule vide pourrait provoquer un plantage.

La proposition de GL n'est pas mal non plus.
--
Salutations
JJ


"Jacquouille"
Pourquoi tu testes si c n'est pas vide? Si vide = pas d'accent ....
Pour les + de 65.000 lignes, tu as raison. mais, je n'y pense jamais car je suis toujours en 2003. (manière
de ne pas vieillir). -))
Bonne soirée
Jacques.


Jacquouille

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

Hello Jacques,
[A65536].End(3).Row
Beurggg!
Ne fonctionne pas si les lignes sont plus longues que 65536.
Je préfère
Cells(Rows.Count, 1).End(xlUp).Row

Perso , je ferai comme ceci
'----------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, col As Long
'col retourne la colonne la plus longue: soit 1(A) soit 2(B)
col = IIf(Cells(Rows.Count, 1).End(xlUp).Row > Cells(Rows.Count, 2).End(xlUp).Row, 1, 2)
For Each c In Range("a2:b" & Cells(Rows.Count, col).End(xlUp).Row)
If c <> "" Then c.Value = Sans_accents$(c.Value)
Next c
End Sub
'------------------

--
Salutations
JJ


"Jacquouille"
Bonsoir Jacky,
Juste une question: -)
Je sais que c'est la fin de semaine, mais, n'y aurait-il pas lieu de demander poliment à Excel quelle
colonne est la plus longue ( a ou b), vu que le demandeur semble y faire allusion, mais sans le dire?
Un truc du genre (non testé) ????
derLA= [A65536].End(3).Row
derLB= [B65536].End(3).Row
if derLA>derLB then derLÞrLA:else derLÞrLB
For Each c In Range("a2:b" & derL)
[c] = Sans_accents$(c.Value)
Next

Bonne soirée
Jacques.


Jacquouille

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

Bonsoir,

...pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2 jusqu'à la fin)


'----------------
For Each c In Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row)
c.Value = Sans_accents$(c.Value)
Next
'--------------
--
Salutations
JJ


"Albert"
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la fin) et la colonne B (B2 jusqu'à la
fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
--------------------------------------------

Merci

--
albertri-at-videotron.ca.invalid




---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast!
Antivirus est active.
http://www.avast.com





---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast!
Antivirus est active.
http://www.avast.com

Jacky
Le #26324605
Hello,

Et pour être compatible au version antérieur
;o))
For Each c In Intersect([A2].Worksheet.UsedRange, Range("A2:B" & Rows.Count))

--
Salutations
JJ


"GL"
Le 22/11/2014 20:50, Albert a écrit :
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la
fin) et la colonne B (B2 jusqu'à la fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub



Je propose au plus court (mais évidemment c'est pas hyper général,
par contre c'est plus facile pour s'en souvenir peut-être...)

For Each c In Intersect([A2].Worksheet.UsedRange, [A2:B999999])
...
Next


Albert
Le #26324616
Bonsoir ou Bonjour selon

J'ai finalement opté pour cette dernière suggestion :

For Each c In Intersect([A2].Worksheet.UsedRange, Range("A2:B" &
Rows.Count))

Si les deux colonnes A ou B sont de longueurs différentes les accents sont
enlevés jusqu'à la dernière cellule.

merci

albert

"Jacky" news:m4r6kp$hqv$
Hello,

Et pour être compatible au version antérieur
;o))
For Each c In Intersect([A2].Worksheet.UsedRange, Range("A2:B" &
Rows.Count))

--
Salutations
JJ


"GL" 5470ffcc$0$12771$
Le 22/11/2014 20:50, Albert a écrit :
Bonjour

Comment ré-écrire ce qui suit pour inclure la colonne A (A2 jusquà la
fin) et la colonne B (B2 jusqu'à la fin)?
----------------------
Sub EnleveAccent()
' Cette MACRO enlève tous les caractères accentuées et spécaux
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A2], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub



Je propose au plus court (mais évidemment c'est pas hyper général,
par contre c'est plus facile pour s'en souvenir peut-être...)

For Each c In Intersect([A2].Worksheet.UsedRange, [A2:B999999])
...
Next






Publicité
Poster une réponse
Anonyme