Hello all,
Voici des petites corrections sur ta macro :
Dim Tota As Variant
Tota = Application.InputBox(prompt:='Veuillez saisir le numéro de la ligne ou vous voulez insérer ce module', Type:=1)
On Error GoTo Erreur
Range('module2').Select
If IsEmpty(Range('B' & Tota)) And IsEmpty(Range('B' & Tota + 1)) And IsEmpty(Range('B' & Tota + 2)) Then
Selection.Cut Destination:=Range('B' & Tota)
Range('a' & Tota).Select
Else
Range('a64').Select
MsgBox 'Vous avez sélectionné une cellule non vide '
Range('a' & Tota).Select
End If
Exit Sub
Erreur:
Range('a64').Select
End Sub
Quelques petites explication sur les modifications que j'ai faites :
1 - Il faut toujours déclarer les variables, cela t'evitera parfois bien des soucis.
2 - J'ai viré la variable 'mavariable' parce que si tu fais mavariable=tota, autan,t utiliser directement mavariable !
3 - Ensuite plus tot que faire 3 conditions pour verifier une seule chose j'ai mis des AND (et) comme ca il faut que les 3 soient vrai pour executer l'action.
4 - J'ai mis un exit sub avant le erreur: sinon la macro ne s'arrete pas et execute la partie erreur.
Comme en faites tu ne veux executer cette partie de code que si erreur pas besoin de la faire à chaque fois.
Enfin petit conseil, prend l'habitude de décaler tes lignes en fonctions de tes si, etc... tu verras quand on relit c'est beaucoup plus claire. Pour info tu idente avec la touche TAB
Voila.
Pour le reste je regarderais plus tard, mais il y a moyen de 'reduire' tout ca par l'utilisation d'un module je pense.
++
Creepy