Bonjour le forum,
J'ai élaboré une macro qui, partant d'un formulaire type sous Excel enregistre dans des répertoires différents en fonction de la valeur de la cellule A9, puis ferme le classeur ainsi obtenu et revient au classeur type.
Tout cela fonctionne très bien.
Je voudrais maintenant qu'avant de fermer le classeur de destination, la macro copie un certain nombre de cellules non contigües dans un autre classeur, à des fins statistiques.
Or, c'est là que je bute, car la macro que j'ai réalisée me dit qu'il ne peut pas traiter des cellules non contigües.
Je pense que je pourrai sélectionner la cellule, la copier dans la feuille de destination, revenir à la feuille d'origine, resélectionner une cellule ... Mais, je souhaiterais savoir s'il n'y a pas un moyen plus aisé.
Voici mon code :
Merci d'avance.
Cordialement.
J'ai élaboré une macro qui, partant d'un formulaire type sous Excel enregistre dans des répertoires différents en fonction de la valeur de la cellule A9, puis ferme le classeur ainsi obtenu et revient au classeur type.
Tout cela fonctionne très bien.
Je voudrais maintenant qu'avant de fermer le classeur de destination, la macro copie un certain nombre de cellules non contigües dans un autre classeur, à des fins statistiques.
Or, c'est là que je bute, car la macro que j'ai réalisée me dit qu'il ne peut pas traiter des cellules non contigües.
Je pense que je pourrai sélectionner la cellule, la copier dans la feuille de destination, revenir à la feuille d'origine, resélectionner une cellule ... Mais, je souhaiterais savoir s'il n'y a pas un moyen plus aisé.
Voici mon code :
Code:
Sub Enreg()
Dim chemin, Chemin2, Repertoire, Fichier, Fichier2, Fichier4, Rep As String
chemin = "G:\XXX\YYY\ZZZ\AAA\BBB\CCC\"
Chemin2 = "G:\XXX\YYY\ZZZ\AAA\BBB\"
Repertoire = [A9].Value & "\"
Fichier = "Fiche anomalieModèle.xlsm"
Fichier2 = Sheets("Feuil2").[E1].Value & ".xlsm"
Fichier4 = "ExtractionContrôles.xlsx"
ActiveWorkbook.SaveAs Filename:=chemin & Repertoire & Fichier2, FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.Sheets("Feuil2").Select
Application.Union(Cells(7, 5), Cells(8, 1), Cells(8, 2), Cells(8, 5), Cells(12, 2), Cells(14, 2), Cells(14, 5), Cells(16, 2), Cells(16, 5)).Select 'selection des données que l’on veut importer
Selection.Copy 'copie les données sélectionnées
Workbooks(Chemin2 & Fichier4).Activate 'retourne vers le fichier de départ
i = ActiveSheet.UsedRange.Rows.Count 'compte le nombre de lignes déjà utilisées dans ce fichier
Cells(i + 1, 1).Select 'sélection de la cellule où on veut coller les données (la première vide)
ActiveSheet.Paste 'colle les données
Workbooks(Chemin2 & Fichier4).Close SaveChanges:=True
Rep = MsgBox("Voulez-vous revenir au modèle et fermer la présente fiche anomalie ?", vbYesNo + vbQuestion, "Le programme demande votre attention")
If Rep = vbYes Then
Workbooks.Open Filename:=chemin & Fichier
Workbooks(Fichier2).Close SaveChanges:=False
End If
End Sub
Merci d'avance.
Cordialement.