Bonsoir le forum!!
J'utilise Excel 2000 sous win XP et j'ai un souci avec une erreur VBA qui s'affiche : "400". Voici la situation :
J'ai une macro dans une feuille, mettons la feuille3, dans laquelle j'ai placé une zone de texte qui renvoie à cette macro : ça marche impeccable.
Dans une autre feuille, la feuille 6, je copie-colle le texte de la macro et je place dans la feuille une zone de texte qui (j'ai vérifié) renvoie bien à la macro de la feuille 6 et non à celle de la 3.
Cette macro (le texte est plus loin) insère une ligne au-dessus de celle où se trouve la cellule sélectionnée, lorsque je clique sur la zone de texte.
Donc je clique sur la zone de texte de la feuille 6, de la même façon que pour la 3, et là j'ai une boite de message avec écrit juste "400"
L'aide d'Excel ne m'est d'aucun secours, je ne vois pas ce qu'est une feuille dite "modèle", d'ailleurs le texte de la macro est bel et bien présent dans la feuille 6 et la zone de texte en feuille 6 renvoie bien à la macro de la feuille 6.
Donc je ne comprends pas..
Peut-être qu'on ne peut pas mettre une même macro dans deux feuilles distinctes?
Peut-être que la macro même comporte le problème, c'est pourquoi je vous mets ci-dessous le texte.
(je me demande au passage si le guillemet simple de la ligne4 est utile...)
Sub NouvelleLigneAuDessus()
' Insère une ligne au-dessus de la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient
'Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
Dim i
ActiveCell.EntireRow.Insert
ActiveCell.Range("A2").Select
ZtNumLig = ActiveCell.Row
ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig - 1, 1), Cells(ZtNumLig - 1, ZtDerCol))
Application.ScreenUpdating = False
For i = 1 To ZtDerCol
If Not Cells(ZtNumLig - 1, i).HasFormula Then
Cells(ZtNumLig - 1, i).ClearContents
End If
Next i
End Sub
C'est vraiment handicapant mais bon il doit bien y avoir une logique...
Merci d'avance pour vos lumières et bonne soirée !
J'utilise Excel 2000 sous win XP et j'ai un souci avec une erreur VBA qui s'affiche : "400". Voici la situation :
J'ai une macro dans une feuille, mettons la feuille3, dans laquelle j'ai placé une zone de texte qui renvoie à cette macro : ça marche impeccable.
Dans une autre feuille, la feuille 6, je copie-colle le texte de la macro et je place dans la feuille une zone de texte qui (j'ai vérifié) renvoie bien à la macro de la feuille 6 et non à celle de la 3.
Cette macro (le texte est plus loin) insère une ligne au-dessus de celle où se trouve la cellule sélectionnée, lorsque je clique sur la zone de texte.
Donc je clique sur la zone de texte de la feuille 6, de la même façon que pour la 3, et là j'ai une boite de message avec écrit juste "400"
L'aide d'Excel ne m'est d'aucun secours, je ne vois pas ce qu'est une feuille dite "modèle", d'ailleurs le texte de la macro est bel et bien présent dans la feuille 6 et la zone de texte en feuille 6 renvoie bien à la macro de la feuille 6.
Donc je ne comprends pas..
Peut-être qu'on ne peut pas mettre une même macro dans deux feuilles distinctes?
Peut-être que la macro même comporte le problème, c'est pourquoi je vous mets ci-dessous le texte.
(je me demande au passage si le guillemet simple de la ligne4 est utile...)
Sub NouvelleLigneAuDessus()
' Insère une ligne au-dessus de la ligne qui contient la cellule active
' et y recopie les formules qu'elle contient
'Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
Dim i
ActiveCell.EntireRow.Insert
ActiveCell.Range("A2").Select
ZtNumLig = ActiveCell.Row
ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig - 1, 1), Cells(ZtNumLig - 1, ZtDerCol))
Application.ScreenUpdating = False
For i = 1 To ZtDerCol
If Not Cells(ZtNumLig - 1, i).HasFormula Then
Cells(ZtNumLig - 1, i).ClearContents
End If
Next i
End Sub
C'est vraiment handicapant mais bon il doit bien y avoir une logique...
Merci d'avance pour vos lumières et bonne soirée !