Bonjour à tous,
J’ai voulu créer une petite macro qui me semblait très simple au premier abord, je dois explorer toutes les cellules une colonne sur deux d’un tableau de 120 x 90 et enlever le signe « < » s’il y est, et marquer « LD » sur la colonne à côté.
Je débute en vba mais ayant déjà fait des macros un peu plus compliquées et surtout beaucoup plus lourdes sur le même pc je ne pensais pas être confronté à un problème de mémoire.
Il n’y a que ce tableau sur le fichier, aucune autre feuille, pas de formule, pas de forme, 6 caractères max par cellule, aucune cellule fusionnée sur la plage, rien d’autre ouvert sur le pc … certes des lignes inutiles au milieu mais ca ne devrait pas poser de problème. J’ai testé sur 2 pc c’est le même résultat. J'ai testé avec une variable Variant, pas mieux.
C’est systématiquement les lignes « cells.value = » qui plantent, dès le premier passage. Ca ne modifie même pas la première cellule. Quand je mets ces 2 lignes en commentaire le code parcourt bien tout le tableau.
Je trouve quand même incroyable de ne pas réussir à changer la valeur d’une cellule, même en codant avec les pieds… Quelqu’un aurait-il une idée pour solutionner ce problème ? Les propositions trouvées sur d’autres topics ne semblent pas correspondre.
Sub test()
Dim i, j As Integer
Dim contenu As String
For i = 7 To 95
j = 5
For j = 5 To 67
contenu = Cells(i, j).Value
If Left(contenu, 1) = "<" Then
contenu = Replace(contenu, "<", "")
Cells(i, j).Select
Cells.Value = contenu
ActiveCell.Offset(0, 1).Select
Cells.Value = "LD"
ActiveCell.Offset(0, -1).Select
End If
j = j + 2
Next
i = i + 1
Next
End Sub
Merci à vous