Se connecter avec
S'enregistrer | Connectez-vous

Problème vba excel

Dernière réponse : dans Programmation

Bonjour,

J'utilisais une application Excel avec du code VBA écrit sous Excel 97 et tournant sur 2003.
Mon classeur ne tourne plus sous Excel 2007.

Une fenêtre d'erreur 1004 s'affiche et m'informe que : "Impossible de déplacer des objets en dehors de la feuille"

La touche "aide" m'amène à cette ligne de code :
  1. Selection.Insert Shift:=xlDown



Effectivement en allant voir ce qui se passe derrière sur la feuille de calcul du classeur, je constate qu'il est impossible d'insérer une ligne ou une colonne.

Précision, la macro suivante s'est exécutée à l'ouverture du fichier :

  1. Sub auto_open()
  2.  
  3. ' Bouton1_QuandClic Macro
  4. '
  5. With Application
  6. .TransitionMenuKey = "/"
  7. .DefaultSaveFormat = xlNormal
  8. End With
  9. With ActiveWindow
  10. .DisplayGridlines = False
  11. .DisplayHeadings = False
  12. .DisplayOutline = False
  13. .DisplayZeros = False
  14. .DisplayHorizontalScrollBar = False
  15. .DisplayVerticalScrollBar = False
  16. .DisplayWorkbookTabs = False
  17. End With
  18. ActiveWorkbook.DisplayDrawingObjects = xlHide
  19. With Application
  20. .DisplayStatusBar = False
  21. .DisplayCommentIndicator = 0
  22. End With
  23. Application.CommandBars("Standard").Visible = False
  24. Application.CommandBars("Drawing").Visible = False
  25. Application.CommandBars("Forms").Visible = False
  26. UserForm1.Show
  27. End Sub



De plus, le code suivant me permet d'accéder aux feuilles de mon classeur masquées par la userform1 qui comporte un accès par code :

  1. Private Sub Image1_Click()
  2. Message = "code d'accès, SVP"
  3. myvalue = InputBox(Message, Title)
  4. If myvalue <> "taratata" Then Exit Sub
  5. UserForm1.Hide
  6. End Sub


Enfin, ce code en fin d'application :

  1. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  2. Application.DisplayAlerts = False
  3. Worksheets.Application.SaveWorkspace
  4. Application.DisplayAlerts = False
  5. Application.Quit
  6. End Sub


Merci d'avance à la personne qui pourra m'indiquer la solution.

Autres pages sur : probleme vba excel

Lassé par la pub ? Créez un compte

Bonjour ducotam !

Ce message date d'un petit moment mais peut-être est-ce toujours un problème?

Pour ma part, je ne trouve pas la solution au problème dans le code que vous avez montré : peu d'informations utiles pour votre problème.

L'explication se trouve sûrement dans ce que contient la feuille de calcul que vous essayez de manipuler avec cette macro. Voici ce qu'on peut trouver concernant votre message d'erreur sur les sites de Microsoft :
Citation :
Ce message d'erreur s'affiche si les deux conditions suivantes sont réunies :

* Vous créez un objet tel qu'un commentaire dans n'importe quelle cellule de la colonne.
* Vous essayez de masquer la colonne à gauche de la colonne contenant l'objet, la colonne contenant l'objet, et l'ensemble des colonnes à droite de la colonne contenant l'objet.

Ce problème survient par exemple si vous placez un commentaire dans la cellule IR1, puis essayez de masquer les colonnes IQ:IS (simultanément).


Peut être que la manipulation d'un objet par votre ajout de ligne pose problème... Peut être que vous essayez d'ajouter une lignes aux coordonnées d'une ligne qui est déjà masquée dans votre classeur?
Avez-vous essayé de tester votre macro sur un classeur "vierge" pour voir si le code en lui-même pose problème? (Ce dont je doute)

Tenez-moi informé des suites de vos test!

Bonjour,

Nous avions la même problématique et je viens de trouver une solution.
Il faut aller dans les options d'Excel 2007 puis options avancées et dans la partie "Afficher les options pour ce classeur" il faut cocher la case "Tout" sous : "Pour des objets, afficher:" au lieu de "Rien".

Bonne journée
AlexDODIER
Lassé par la pub ? Créez un compte