Macro qui ne marche pas sur les lignes - Logiciels - Windows & Software
Marsh Posté le 12-06-2008 à 11:22:21
Bonjour
Ca serait mieux de poursuivre dans le post de départ.
A quoi ressemble ton tableau, car la c'est un peu vague...
Cordialement
Marsh Posté le 12-06-2008 à 13:46:27
SuppotDeSaTante a écrit : Bonjour |
Marsh Posté le 12-06-2008 à 13:48:40
Désolée je ne savais pas.
Finalement j'ai résolu mon problème mais j'en ai un autre, la matrice ci-dessus fonctionne sur un nouveau classeur mais quand je l'insère dans mon classeur qui est assez lourd et avec plusieurs feuilles et une autre macro, mon programme plante et je vois pas comment faire. Merci
Sub Modif()
Dim Cel As Range, Cel2 As Range
Dim i As Integer
Set Cel = Range("B4:GK118" )
For Each Cel2 In Cel
i = 1
While IsError(Cel2) = True
Cel2 = Cells(Cel2.Row + i, Cel2.Column)
'Sheet.Select
i = i + 1
Wend
Next
End Sub
Marsh Posté le 12-06-2008 à 14:14:35
Re
Il plante, ok, mais quel est le message ? Il plante sur quel ligne ?
Sois un peu plus explicite...
Marsh Posté le 12-06-2008 à 15:12:12
Il plante excel, j'ai "excel ne répond pas" c'est ca qui est étrange
Marsh Posté le 12-06-2008 à 16:37:25
Ah, laisse le tourner alors, c'est que ta boucle est surement tres longue.
Il met souvent ce message pour de longs traitements.
Essaie peut etre de mettre en debut de code un application.screenupdating=false
puis en fin, un application.screenupdating=true
Ca permet de ne pas "voir" le traitement de la macro.
Sinon, si tu trouves que c'est vraiment trop long, tu fais Ctrl Pause. ca va te basculer en mode pas a pas, et vas mettre en pause ton code.
Tu pourras ainsi voir la valeur de i et donc connaitre le nb de fois ou il est passé dns la boucle, il faut peut etre a un moment donné sortir de ton while.
Marsh Posté le 12-06-2008 à 09:35:25
Bonjour, j'ai encore un petit problème la macro marche mais je dois la relancer pour chaque ligne, merci de me dire ce qui cloche.
Sub Modif()
Dim Cel As Range, Cel2 As Range
Set Cel = Range("B4:GK118" )
For Each Cel2 In Cel
If IsError(Cel2) = True Then
Cel2 = Cells(Cel2.Row + 1, Cel2.Column)
'Sheet.Select
End If
Next
End Sub