Plantage macro suprimmer

  • Initiateur de la discussion Initiateur de la discussion Garion
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Garion

XLDnaute Nouveau
Bonjour à tous,

J'ai développer un classeur avec un formulaire qui change en fonction de la situation.
Grossomodo, la personne qui rempli la feuille choisi la situation en cochant une case et le formulaire apparait. Les formulaires sont en faite sur des feuilles masquées et le fait de cocher il y a une macro qui copie le formulaire.

J'ai laisser la possibilité de changer de formulaire si la personne s'est trompé. donc suppression du 1er formulaire et copie du 2nd

Cependant j'observe une erreur lors de la suppression. Si j'ai sélectionner une liste déroulante, alors j'ai une erreur 1004. cette erreur me renvoie à la partie du code qui me permet de supprimer les images (en + du texte)

Pouvez-vous jeter un coup d'œil si l'erreur vient de mon code ? Ou si les liste déroulante sont incompatible avec ce genre de macro ?

Merci

Sub excel_download()
'
'problème plantage feuille masquée
'Figer l'écran
Application.ScreenUpdating = False
'Afficher la feuille masquée
Sheets("feuille1").Visible = True

'(général)supression de toutes les shapes puis des lignes et ensuite copie d'une feuille type vierge
'dont le point bas droit ne se trouve pas sur les lignes 1 à 3

Dim x
Dim curshapes As Shape
For Each curShape In ActiveSheet.Shapes
Set x = Intersect(curShape.BottomRightCell, Rows("1:2"))
If x Is Nothing Then curShape.Delete
Next curShape



Rows("3:100").Select
Selection.Delete Shift:=xlUp

Sheets("feuille1").Select
Rows("3:100").Select
Selection.Copy
Sheets("feuille2").Select
Rows("3:3").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=-12

Dim intColMin As Integer, intColMax As Integer
Dim intLinMin As Integer, intLinMax As Integer

intColMin = 1
intColMax = 53
intLinMin = 1
intLinMax = 80

ActiveSheet.PageSetup.PrintArea = Range(Cells(intLinMin, intColMin), Cells(intLinMax, intColMax)).Address

'Masquer la feuille
Sheets("feuille1").Visible = False
'Réactiver l'affichage écran
Application.ScreenUpdating = True

End Sub
 
Re : Plantage macro suprimmer

Bonjour,

un s en trop dans a déclaration de variable "curshapes"...
regarde ceci :
Code:
Dim curshape As Shape, x As Range
For Each curshape In ActiveSheet.Shapes
    Set x = Intersect(curshape.BottomRightCell, Rows("1:2"))
    If Not x Is Nothing Then curshape.Delete
Next curshape

supprime le "shape" si trouvé... perso utiliserais plutôt la propriété "TopLeftCell" plutôt que "BottomRightCell"... mais bon, pas vu ton classeur..

bon après midi
@+
 
Re : Plantage macro suprimmer

merci à toi pour ta réponse pierrot 93,

Merci pour ta remarque du "s" et ta modif, sa fonctionne bien sauf que j'ai enlevé le not à :
If Not x Is Nothing Then curshape.Deletecar sinon justement sa faisait l'inverse de ce que je souhaitait.

Cependant, j'ai toujours le même problème avec ma liste quand je sélectionne une liste, je ne peux plus choisir un autre formulaire.

Je vous joint un fichier pour plus de compréhension.
 

Pièces jointes

Re : Plantage macro suprimmer

Re,

cette ligne fonctionnait chez moi dans le code que je t'ais donné... L'as tu testé en l'état et quel résultat tu as obtenu ?

Avant de poster sur le forum, il est préférable de nétoyer les fichiers de tous les modules / procédures qui ne servent à rien... enfin c'est juste mon avis....

bonne soirée
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
272
Réponses
10
Affichages
551
Réponses
7
Affichages
168
Réponses
1
Affichages
498
Réponses
5
Affichages
482
Retour