Bonjour à tous,
Voila j'ai mis au point avec un consultant extérieur une macro dans fichier Excel qui me génère automatiquement d'autres fichiers excel en copiant / collant des données à partir d'une matrice du premier fichier.
Le fichier de la matrice (avec la macro) établit un model de tableau en fonction de critères et de champs calculés et la macro ouvre un nouveau fichier et copie les données en dure.
Cette macro marchait très bien depuis environs 6 mois mais voila depuis une semaine elle plante.
j'ai l'impression qu'elle bloque sur l'opération "coller" ou l’activation de du fichier de destination.
Voila le début de la macro et en jaune l'opération où ça bloque :
orkbooks(strWBBase).Activate
End If
If strNomWB = ActiveCell.Offset(-1, 0).Value Or strNomWB = ActiveCell.Value Then
strCode = ActiveCell.Offset(0, 1).Value 'récupération du code comme variable
strSection = ActiveCell.Offset(0, 2).Value 'récupération de la section comme variable
strSynthese = ActiveCell.Offset(0, 3).Value 'récupération de la synthèse comme variable
strGrp = ActiveCell.Offset(0, 4).Value 'récupération du nom de la feuille de regroupement
strNameSynthese = ActiveCell.Offset(0, 5).Value 'récupération du nom de la synthèse
Worksheets("Matrice").Activate
Range("A1").Value = strCode
Range("L10").Value = "'" & strSection
Range("PlageMatrice").Copy 'Sélection de toute la zone à copier par son nom
Workbooks(strNameSaved).Activate
Sheets.Add After:=Sheets(Sheets.Count) 'AJout d'une nouvelle feuille à droite
ActiveSheet.Name = strSection 'Imputation du nom de section à l'onglet
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues 'Collage des valeurs seules
Selection.PasteSpecial Paste:=xlPasteFormats 'Collage des formats d'origine
Workbooks(strWBBase).Worksheets("TableGénération").Activate
'Traitement du n° de synthèse
If ActiveCell.Offset(0, 3).Value <> "" Then
Workbooks(strWBBase).Worksheets("ParamSynthSections").Activate
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Find(What:=strSynthese, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
J'ai appelé le support de mon entreprise, apparemment il me parle d'un patch installé sur mon PC lors d'une mise à jour qui empêche l'opération mais personne ne sait comment l'enlever... je ne sais pas quoi en penser.
J'espère que quelqu'un pourra m'aider,
Cdt,
Guillaume.
Voila j'ai mis au point avec un consultant extérieur une macro dans fichier Excel qui me génère automatiquement d'autres fichiers excel en copiant / collant des données à partir d'une matrice du premier fichier.
Le fichier de la matrice (avec la macro) établit un model de tableau en fonction de critères et de champs calculés et la macro ouvre un nouveau fichier et copie les données en dure.
Cette macro marchait très bien depuis environs 6 mois mais voila depuis une semaine elle plante.
j'ai l'impression qu'elle bloque sur l'opération "coller" ou l’activation de du fichier de destination.
Voila le début de la macro et en jaune l'opération où ça bloque :
orkbooks(strWBBase).Activate
End If
If strNomWB = ActiveCell.Offset(-1, 0).Value Or strNomWB = ActiveCell.Value Then
strCode = ActiveCell.Offset(0, 1).Value 'récupération du code comme variable
strSection = ActiveCell.Offset(0, 2).Value 'récupération de la section comme variable
strSynthese = ActiveCell.Offset(0, 3).Value 'récupération de la synthèse comme variable
strGrp = ActiveCell.Offset(0, 4).Value 'récupération du nom de la feuille de regroupement
strNameSynthese = ActiveCell.Offset(0, 5).Value 'récupération du nom de la synthèse
Worksheets("Matrice").Activate
Range("A1").Value = strCode
Range("L10").Value = "'" & strSection
Range("PlageMatrice").Copy 'Sélection de toute la zone à copier par son nom
Workbooks(strNameSaved).Activate
Sheets.Add After:=Sheets(Sheets.Count) 'AJout d'une nouvelle feuille à droite
ActiveSheet.Name = strSection 'Imputation du nom de section à l'onglet
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues 'Collage des valeurs seules
Selection.PasteSpecial Paste:=xlPasteFormats 'Collage des formats d'origine
Workbooks(strWBBase).Worksheets("TableGénération").Activate
'Traitement du n° de synthèse
If ActiveCell.Offset(0, 3).Value <> "" Then
Workbooks(strWBBase).Worksheets("ParamSynthSections").Activate
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Find(What:=strSynthese, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
J'ai appelé le support de mon entreprise, apparemment il me parle d'un patch installé sur mon PC lors d'une mise à jour qui empêche l'opération mais personne ne sait comment l'enlever... je ne sais pas quoi en penser.
J'espère que quelqu'un pourra m'aider,
Cdt,
Guillaume.