Bonjour,
J'ai une feuille excel que j'aimerais dupliquer tout en restant dans le même fichier, le soucis que je rencontre est double :
- quand je veux dupliquer une feuille qui contient une macro, à la fin du traitement, la macro n'existe plus, j'ai des messages d'erreur qui s'affichent.
- que je duplique une feuille qui contient ou non une macro, lorsque je veux supprimer la feuille qui a été dupliquée depuis excel, la feuille dupliquée est supprimée, mais la feuille source aussi.
Dans la duplication d'une feuille, j'aimerai, si possible, pouvoir reprendre la présentation qui a été mise en place dans la feuille source.
Voici mon code wlangage :
Ce que je voulais faire, c'est de me servir de 2 variables, l'une contenant la feuille source, l'autre, la feuille cible, et dans la feuille cible, je duplique cellule par cellule ce qui est dans ma feuille source.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 l_cellule est un xlsCellule l_titreFeuille est une chaîne="BUDGET 2015" l_posFeuille est un entier=4 l_ExcelSource est un xlsDocument=xlsOuvre(SAI_EXCEL) l_ExcelCible est un xlsDocument=xlsOuvre(SAI_EXCEL) xlsFeuilleEnCours(l_ExcelSource,l_posFeuille) xlsAjouteFeuille(l_ExcelCible,"Test Ajout feuille") POUR loop_ligne=1 A 10 POUR loop_colonne=1 A 20 l_cellule=l_ExcelSource[loop_ligne,loop_colonne] l_ExcelCible[loop_ligne,loop_colonne]=l_cellule FIN FIN xlsSauve(l_ExcelCible) xlsFerme(l_ExcelCible) xlsFerme(l_ExcelSource) Info("fin")
Si possible, j'aimerais éviter de passer par des objets automation car ça ouvre un nouveau processus EXCEL.
Merci
Edit : j'ai trouvé à peu près ce que je voulais grâce à ce lien, où j'arrive à fermer le processus excel une fois le traitement terminé.
Pour clore ce que je comptais faire : ma feuille excel est formatée de la manière suivante:
- en colonne A, je vais avoir des codes rubriques (par exemple: RUB01, RUB02, ...)
- en colonne B, je vais avoir un numérique entier, 0 ou un nombre compris entre 1 et 15, représente le numéro d'une activité, 0 veut dire "toutes les activités"
- en colonne C, je vais avoir l'intitulé d'une rubrique (par exemple : CA Total ACT 1)
- en colonne D, je vais avoir le montant de la rubrique sur une année entière
- en colonne E, je vais avoir le montant de la rubrique sur le mois de janvier uniquement
...
Mon objectif serait de calculer toutes les rubriques sur une activité donnée (y compris l'activité 0, qui servira à faire des sous-totaux sur une liste de rubriques), les résultats apparaitront sur une nouvelle feuille excel tout en restant dans le même document. Si j'arrive à dupliquer le format d'affichage, ce serait un vrai plus.
Le calcul d'une rubrique se fera depuis mon application Windev.
Concernant le nouveau soucis rencontré: à l'aide du code suivant:
Le format d'affichage est bien reproduit mais le texte n'apparait pas... Vous voyez d'où vient le soucis?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 l_nouveauTitre est une chaîne="Nouvelle feuille" l_MonExcel est un xlsDocument=xlsOuvre(SAI_EXCEL,xlsEcriture) xlsAjouteFeuille(l_MonExcel,l_nouveauTitre) xlsSauve(l_MonExcel) xlsFerme(l_MonExcel) xl est un objet OLE "Excel.Application" xl>>visible=OLEFaux xl>>workbooks>>open(SAI_EXCEL) xl>>Sheets(l_titreFeuille)>>Range("A1:H50")>>copy() xl>>Sheets(l_nouveauTitre)>>Range("A1:H50")>>PasteSpecial(-4122) xl>>Sheets(l_titreFeuille)>>Range("A300:H400")>>copy() xl>>Sheets(l_nouveauTitre)>>Range("A51:H151")>>PasteSpecial(-4122) xl>>Activeworkbook>>save xl>>workbooks>>close xl>>quit
Partager