blocage dans une routine for
Salut à tous, je viens de pondre quelques lignes qui sont sencées me simplifier la vie...cela fonction jusqu'à un certain point et apres ça plante, j'ai lancé la macro en mode pas à pas, et je ne voie pas ou est le probleme.
j'ai un tableau contenant une liste complete de nature d'intervention
Code:
1 2 3 4 5 6
| 111 Feu E.R.P. sans local à sommeil
112 Feu E.R.P. avec local à sommeil
116 Feu Locaux d´habitations ou bureaux
121 Feu Locaux industriels
122 Feu Locaux agricoles
etc... |
dans une autre partie de ma feuille, j'ai un autre listing issu d'un requeteur,
il contient le meme type listing + 3 colonnes
je souhaite prendre chaque ligne de mon tableau n°2 et la placée sur la meme ligne que celle portant le même nom dans mon tableau n°1
voici mon code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| Sub tri_par_nature()
' I) copier "manuellement" / collage_spécial le résultat du tableau croisé "nature par groupement" dans la
' cellule rouge (sans les titres en haut ni les sommes à droite)
' II) définir le nombre de ligne du tableau collé en 1)
Dim nbligne As Integer
nbligne = Range("bk12").CurrentRegion.Rows.Count
' III) pour chaque ligne du tableau collé:
Dim numero_ligne_destination As Integer
Dim valeur_test As String
Dim plage_origine As Range
Dim ligne_origine As Integer
Dim plage_destination As Range
With Worksheets("TC GLOBAL inter par grp")
Dim i As Integer
For i = 0 To nbligne
' a) definir la valeur de la "cellule_source" de la colonne BK
valeur_test = Range("bk" & 12 + i).Value
' b) rechercher dans la plage (A12,A300), la ligne qui contient la même valeur
numero_ligne_destination = Range(.Cells(12, 1), .Cells(300, 1)).Find(valeur_test).Row
' c) définir la plage de cellule à copier qui correspond à "cellule_source" + les 3 cellules de droite
ligne_origine = Range("bk" & 12 + i).Row
Set plage_origine = Range(.Cells(ligne_origine, 63), .Cells(ligne_origine, 66))
' d) Copier ce range dans la cellule AZ sur la même ligne
plage_origine.Select
Selection.Copy
Range("AZ" & numero_ligne_destination).Select
ActiveSheet.Paste
Next
End With
End Sub |
à l'éxécution des premieres lignes, tout va bien mais arrivé à la ligne n° 20 de ma feuille excel j'ai un arret de la macro et le message suivant:
"variable objet ou variable de bloc with non definie"
j'ai l'impression que le blocage se fait dans mon code à la ligne:
Code:
numero_ligne_destination = Range(.Cells(12, 1), .Cells(300, 1)).Find(valeur_test).Row
je vois pas pourquoi, car les premieres lignes sont bien analysées et copier au bon endroit...merci de vos réponses...a+