manuthemalicious
XLDnaute Nouveau
Bonjour,
J'ai un soucis avec une macro que je viens de créer et dont l'objectif est de supprimer des lignes dans un tableau en fonction d'une valeur renseignée sur une feuille de calcul
.
Les 2 dernières lignes comprennent des formules et ne sont donc pas à supprimer:
nb_lignes_a_supprimer = nb_lignes_reel - nb_batiment
MsgBox "il faut supprimer des lignes: " & nb_lignes_a_supprimer
'Détermination de la ligne à supprimer nommée "derniereligne"
derniereligne = (Range("bilan").SpecialCells(xlCellTypeLastCell).Row) - 2
MsgBox "derniere ligne" & derniereligne
For i = 1 To nb_lignes_a_supprimer
Rows(derniereligne).Delete
derniereligne = derniereligne - 1
MsgBox "derniere ligne" & derniereligne
nb_lignes_supprimer = nb_lignes_supprimer + 1
Next i
La macro fonctionne bien au premier lancement mais lorsque je poursuis avec un:
derniereligne = (Range("bilan").SpecialCells(xlCellTypeLastCell).Row)
MsgBox "derniere ligne" & derniereligne
il se trouve que la valeur renvoyée derniereligne est la valeur d'avant execution de la macro!!
cela me pose un problème dans la mesure ou si je fais tourner cette macro 2fois, elle ne fonctionne plus...
Quelqu'un peut-il m'expliquer ce qui se passe?
D'avance merci.
Manu
J'ai un soucis avec une macro que je viens de créer et dont l'objectif est de supprimer des lignes dans un tableau en fonction d'une valeur renseignée sur une feuille de calcul
.
Les 2 dernières lignes comprennent des formules et ne sont donc pas à supprimer:
nb_lignes_a_supprimer = nb_lignes_reel - nb_batiment
MsgBox "il faut supprimer des lignes: " & nb_lignes_a_supprimer
'Détermination de la ligne à supprimer nommée "derniereligne"
derniereligne = (Range("bilan").SpecialCells(xlCellTypeLastCell).Row) - 2
MsgBox "derniere ligne" & derniereligne
For i = 1 To nb_lignes_a_supprimer
Rows(derniereligne).Delete
derniereligne = derniereligne - 1
MsgBox "derniere ligne" & derniereligne
nb_lignes_supprimer = nb_lignes_supprimer + 1
Next i
La macro fonctionne bien au premier lancement mais lorsque je poursuis avec un:
derniereligne = (Range("bilan").SpecialCells(xlCellTypeLastCell).Row)
MsgBox "derniere ligne" & derniereligne
il se trouve que la valeur renvoyée derniereligne est la valeur d'avant execution de la macro!!
cela me pose un problème dans la mesure ou si je fais tourner cette macro 2fois, elle ne fonctionne plus...
Quelqu'un peut-il m'expliquer ce qui se passe?
D'avance merci.
Manu