Plantage macro suprimmer

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
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Garion

XLDnaute Nouveau
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

  • Exemple plantage.zip
    44.4 KB · Affichages: 29

Pierrot93

XLDnaute Barbatruc
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
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 337
Messages
2 087 392
Membres
103 536
dernier inscrit
komivi