lycaon_58
Messages postés31Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention 1 février 2007
-
19 oct. 2006 à 17:14
lycaon_58
Messages postés31Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention 1 février 2007
-
23 oct. 2006 à 13:22
Salut à tous,
J'ai écrit une macro qui concatène plusieurs fichiers excel en un seul.
J'ai également une macro qui s'éxécute sur le fichier final à chaque fois qu'on modifie la valeur d'une case (Private Sub Worksheet_Change(ByVal Target As Range)).
Comment faire pour qu'elle s'éxécute sur toutes les cellules de mon fichier final à la fin de ma macro de concaténation (pas pendant parce que ça bogue) ?
J'ai essayé de la feinter en sélectionnant toutes les cellules et déselectionner juste derrière mais ça ne marche pas....
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 19 oct. 2006 à 19:42
Salut,
regarde cet exemple :
Sub test()
Dim rMyCell As Range
Sheets("Nom Feuille").Select
For Each rMyCell In ActiveSheet.Cells
rMyCell.Value = "Salut"
' ici j'ai mis salut pour le test mais tu mets
' ce que ça doit faire à chaque cellule
Next rMyCell
' attention, opération très longue, pour l'intérrompre : Ctrl + Pause
End Sub
lycaon_58
Messages postés31Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention 1 février 2007 23 oct. 2006 à 13:22
Merci à tous les deux.
Je n'ai pas essayé la solution de MPi mais celle de Mortalino fonctionne.
J'y ai apporté une petite modification. Au lieu d'utiliser ActiveSheet.Cells, il vaut mieux déterminer "à la main" les dimensions de son tableau et éxécuter la macro sur cette sélection. Sinon, en sélectionnant la feuille entière, c'est effectivement extrêmement long !!!