Excel plante...
Résolu
Matt_r
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
Matt_r Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Matt_r Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
J'ai, pour mon travail, un fichier excel "strNomNouveauClasseur" (qui contient la macro) et dans lequel je dois importer des données qui se trouvent dans un autre fichier "strNomAncienClasseur". La macro fonctionne nickel, je peux ensuite continuer de travailler sans aucun souci sur mon classeur, mais dès que j'essaie de le sauvegarder, Excel plante.
Comme la macro marchait parfaitement, un débogage simple n'avait aucun intérêt. J'ai donc tenté d'insérer une fonction de sauvegarde de plus en plus loin dans mon code afin de voir quelle étape faisait planter Excel. Voici l'étape où ça plante :
A mon (humble) avis, ça serait donc la copie de la feuille de l'ancien vers le nouveau classeur.
Si par miracle / hasard l'un(e) d'entre vous a la réponse, ou au moins une idée, je suis preneur avec grand bonheur :D
Cheers !
J'ai, pour mon travail, un fichier excel "strNomNouveauClasseur" (qui contient la macro) et dans lequel je dois importer des données qui se trouvent dans un autre fichier "strNomAncienClasseur". La macro fonctionne nickel, je peux ensuite continuer de travailler sans aucun souci sur mon classeur, mais dès que j'essaie de le sauvegarder, Excel plante.
Comme la macro marchait parfaitement, un débogage simple n'avait aucun intérêt. J'ai donc tenté d'insérer une fonction de sauvegarde de plus en plus loin dans mon code afin de voir quelle étape faisait planter Excel. Voici l'étape où ça plante :
Sub Importer_ancien_classeur()
' Permet d'importer les données
MsgBox "L'importation va commencer, veuillez patienter pendant que votre ordinateur fait le travail", vbOKOnly, "Début de l'importation"
Dim strNomAncienClasseur As String, strNomNouveauClasseur As String
strNomAncienClasseur = Worksheets("importation").Range("n14")
strNomNouveauClasseur = ActiveWorkbook.Name
' Ouvrir l'ancien classeur
Workbooks.Open (ThisWorkbook.Path & "\" & strNomAncienClasseur)
' Supprimer les feuilles dans le nouveau classeur
With Workbooks(strNomNouveauClasseur)
Application.DisplayAlerts = False
.Worksheets("database").Delete
Application.DisplayAlerts = True
End With
' Importer les feuilles de l'ancien classeur
Workbooks(strNomAncienClasseur).Worksheets("database").Copy after:= _
Workbooks(strNomNouveauClasseur).Sheets(1)
' --------------------------------------------------
' Sauvegarde test
Application.DisplayAlerts = False
Workbooks(strNomNouveauClasseur).Save
Application.DisplayAlerts = True
' --------------------------------------------------
A mon (humble) avis, ça serait donc la copie de la feuille de l'ancien vers le nouveau classeur.
Si par miracle / hasard l'un(e) d'entre vous a la réponse, ou au moins une idée, je suis preneur avec grand bonheur :D
Cheers !
A voir également:
- Excel plante...
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
2 réponses
Bonjour,
Juste une précision lorsque ça plante, le debug se positionne sur la ligne :
Workbooks(strNomAncienClasseur).Worksheets("database").Copy ...
ou sur la ligne :
Workbooks(strNomNouveauClasseur).Save
et quel est le message d'erreur ?
Cordialement,
Juste une précision lorsque ça plante, le debug se positionne sur la ligne :
Workbooks(strNomAncienClasseur).Worksheets("database").Copy ...
ou sur la ligne :
Workbooks(strNomNouveauClasseur).Save
et quel est le message d'erreur ?
Cordialement,
Lorsque ça plante, le débug est sur la ligne
Workbooks(strNomNouveauClasseur).Save
En gros, j'ai voulu voir quelle étape du code faisait planter Excel au moment de la sauvegarde, en insérant comme ça des lignes de sauvegarde dans mon code. Et il est apparu que c'est à partir de l'étape
Workbooks(strNomAncienClasseur).Worksheets("database").Copy ...
que le processus de sauvegarde fait bugger Excel.
Workbooks(strNomNouveauClasseur).Save
En gros, j'ai voulu voir quelle étape du code faisait planter Excel au moment de la sauvegarde, en insérant comme ça des lignes de sauvegarde dans mon code. Et il est apparu que c'est à partir de l'étape
Workbooks(strNomAncienClasseur).Worksheets("database").Copy ...
que le processus de sauvegarde fait bugger Excel.
Est-ce que la sauvegarde fonctionne avant la copie ?
Car dans ce cas il faut chercher dans l'onglet "database" si il n'y a pas des données très volumineuses par exemple.
Sinon il faut utiliser le support Microsoft car il peut y avoir beaucoup de causes.
Par exemple identifiée ici (si c'est Excel 2010):
https://support.microsoft.com/en-us/office/excel-not-responding-hangs-freezes-or-stops-working-37e7d3c9-9e84-40bf-a805-4ca6853a1ff4?ui=en-US&rs=en-001&ad=US
Car dans ce cas il faut chercher dans l'onglet "database" si il n'y a pas des données très volumineuses par exemple.
Sinon il faut utiliser le support Microsoft car il peut y avoir beaucoup de causes.
Par exemple identifiée ici (si c'est Excel 2010):
https://support.microsoft.com/en-us/office/excel-not-responding-hangs-freezes-or-stops-working-37e7d3c9-9e84-40bf-a805-4ca6853a1ff4?ui=en-US&rs=en-001&ad=US
Oui la sauvegarde fonctionne parfaitement avant la copie...
La feuille "database" contient potentiellement des données très volumineuses, mais je fais mes tests avec quelques cellules remplies, même pas une dizaine.
En tout cas, merci pour ton coup de main :) Si jamais je trouve la solution, je viendrai clore le sujet.
La feuille "database" contient potentiellement des données très volumineuses, mais je fais mes tests avec quelques cellules remplies, même pas une dizaine.
En tout cas, merci pour ton coup de main :) Si jamais je trouve la solution, je viendrai clore le sujet.
Tu peux essayer du coté des compléments.
Dans fichier> option > compléments dans les complément COM tu peux essayer de les désactiver décocher le "send to Bluetooth " par exemple
Autre idée dans
Fichier > Options > Options avancées aller dans "Général" et décocher la case
"Ignorer les autres applications qui utilisent l'échange dynamique de données"
Dans fichier> option > compléments dans les complément COM tu peux essayer de les désactiver décocher le "send to Bluetooth " par exemple
Autre idée dans
Fichier > Options > Options avancées aller dans "Général" et décocher la case
"Ignorer les autres applications qui utilisent l'échange dynamique de données"