bonsoir,
je travaille sur un fichier Excel en pilotage OLE depuis D2007
une fois les données rentrées sur la feuille1 je dois dupliquer cette feuille
Quel methodes ou fonction il faut utiliser pour dupliquer la feulle courante ?
merci
bonsoir,
je travaille sur un fichier Excel en pilotage OLE depuis D2007
une fois les données rentrées sur la feuille1 je dois dupliquer cette feuille
Quel methodes ou fonction il faut utiliser pour dupliquer la feulle courante ?
merci
Salut,
rechercher Copy dans l'aide en ligne de VBA ExcelEnvoyé par looping
Méthode Copy telle qu'elle s'applique aux objets Chart, Charts, Sheets, Worksheet et Worksheets.
Cet exemple montre comment copier Sheet1 et placer la copie après Sheet3.
Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")
bonjour,
je n'arrive pas à adapter votre ligne de code sur mon project ?
j'ouvre l'instance Excel "vMSExcel"
ensuite le classeur "vXLWorkbooks" qui s'apelle "of.xls"
puis le feuille "vWorksheet"qui s'appelle "trame"
maintenant j'aimerais dupliquer cette feuille 'trame' et qu'elle se renomme automatiquement: trame(x)/trame(x+1)/trame(x+..)/trame(x+n).
x,n:variable integer
x variable d'itération initialisée à 1 au départ
n étant le nombre de duplication que je souhaite
voici le code:
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 vMSExcel := CreateOleObject('Excel.Application'); vMSExcel.Visible := true; vLink := unassigned; aFileName :=ExtractFilePath(Application.ExeName) + 'of.xls'; vXLWorkbooks := vMSExcel.Workbooks; vXLWorkbook := vXLWorkbooks.Open(aFileName, vLink, false); aSheetName := 'trame'; vWorksheet := vXLWorkbook.WorkSheets[aSheetName];
Moi quand j'arrive pas à le faire par le code, je vais dans Excel, je crée une nouvelle macro et je fais à la main la manip que j'ai envie d'automatiser.
Excel me crée automatiquement du code, j'ai plus qu'à regarder comment il fait...
Dans le cas présent, le code est :
En Delphi ça pourrait donner quelque chose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Sheets("Feuil1").Copy Before:=Sheets(2)
à vérifier...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 aSheetName := 'trame'; vWorksheet := vXLWorkbook.WorkSheets[aSheetName]; vWorksheet.copy(After:=vWorksheet)
Salut,
C'est compréhensiblen, c'est du VBA. C'était juste une piste de recherche :Envoyé par looping
L'approche de EMC51 me semble approprié. Quant à la manipulation du nom de la feuille XL voir avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 _Worksheet = interface(IDispatch) ... procedure Copy(Before: OleVariant; After: OleVariant; lcid: Integer); safecall; ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part property Name: WideString read Get_Name write Set_Name;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager