tedtheOrs
Messages postés37Date d'inscriptionsamedi 12 avril 2008StatutMembreDernière intervention27 janvier 2010
-
5 sept. 2008 à 14:04
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
6 sept. 2008 à 20:55
Bonjour
J'utilise la macro suivante pour "nettoyer" le contenu de mes cellules (qui contiennent plus de 255 caractères pour info, moins de 50 cellules à traiter):
Sub Macro1()
Sheets("N3").Select
Dim lastline_N3 As Long
lastline_N3 = Range("E9").End(xlDown).Row
Range("E4:E" & lastline_N3).Select
For Each Cellule In Range("E4:E" & lastline_N3)
old_text_N3 = Cellule.Value
new_text_N3 = Replace(old_text_N3, Chr(13), Chr(10))
Cellule.Value = new_text_N3 Next
End Sub
J'obtiens lors de l'exécution de la macro un message mémoire insuffisante, si je clique sur débogage, la ligne spécifiée par le debuggeur est celle en gras.
Y aurait il un moyen de palier à ce problème ?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201314 5 sept. 2008 à 16:23
Salut,
Salut, Julien merci pour l'info
Ted, je ne vois pas trop d'ou vient le probleme mais tu peux toujours essayer ce qui suit :
Attention les points devant les reange sont obligatoire
Sub Macro1()
Dim lastline_N3 As Long, Cellule as Range
Dim old_text_N3 As String, new_text_N3 As String
With Sheets("N3")
lastline_N3 = . Range("E9").End(xlDown).Row
<strike>Range("E4:E" & lastline_N3).Select</strike>
For Each Cellule In .Range("E4:E" & lastline_N3)
old_text_N3 = Cellule.Value
new_text_N3 = Replace(old_text_N3, Chr(13), Chr(10))
Cellule.Value = new_text_N3
Next
End With
End Sub
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201314 5 sept. 2008 à 17:13
non non ! ta methode est pas bonne la ! reprend ce que je t'ai donné et donne moi le message d'erreur et le code d'erreur
tu peux aussi mettre une Msgbox pour voir ce qui ce passe :
Sub Macro1()
Dim lastline_N3 As Long, Cellule as Range
Dim old_text_N3 As String, new_text_N3 As String
With Sheets("N3")
lastline_N3 = . Range("E9").End(xlDown).Row
MsgBox lastline_N3<strike></strike>
For Each Cellule In .Range("E4:E" & lastline_N3)
old_text_N3 = Cellule.Value
new_text_N3 = Replace(old_text_N3, Chr(13), Chr(10))
Cellule.Value = new_text_N3
Next
End With
End Sub
regarde si la valeur que te renvoit la msgbox est coherante
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 sept. 2008 à 19:44
Bonsoir,
Juste une question qui pourra paraître idiote, mais ...
A l'occasion de quel évènement appelles-tu cette macro ?
(j'espère que tu ne fais pas tourner "en rond" à l'occasion d'un évènement change quelque part, par exemple)
tedtheOrs
Messages postés37Date d'inscriptionsamedi 12 avril 2008StatutMembreDernière intervention27 janvier 2010 5 sept. 2008 à 20:14
Bonsoir
La macro n'est appelée que via l'executeur de macro...Elle n'est pas déclenché sur un evenement spécifique...C'est une macro "simple" (si je puis dire :s)