Les Snippets

Connexion

Copier une feuille excel

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 17/11/2006 10:01:34 et initié par Drikce06 [Liste]
Date de mise à jour : 17/11/2006 15:09:34
Vue : 8783
Catégorie(s) : Divers
Langages dispo pour ce code :
- VB6, VBA
- VB 2005, VB.NET 1.x
- Voir tous les langages pour ce code snippet



Langage : VB.NET 1.x , VB 2005
Date ajout : 17/11/2006
Posté par Drikce06 [Liste]
DateMAJ : 17/11/2006

' ** Référence : Microsoft Excel 11.0 Library Objects ou équivalent
Public Sub CopierFeuilleExcel(ByVal sMonBookDeCopie As String, ByVal sMonBookDeDestination As String, _ 
ByVal sNomFeuilleACopier As String, ByVal sNomFeuilleCopier As String)

If Dir(sMonBookDeCopie) <> "" And Dir(sMonBookDeDestination) <> "" Then
Dim xlApp As Microsoft.Office.Interop.Excel.Application 
Dim xlBookDeCopie As Microsoft.Office.Interop.Excel.Workbook
Dim xlBookDeDestination As Microsoft.Office.Interop.Excel.Workbook 
Dim i As Integer

Dim j As Integer

If sMonBookDeCopie <> sMonBookDeDestination Then
xlApp = CreateObject("Excel.Application") 
xlBookDeCopie = xlApp.Workbooks.Open(sMonBookDeCopie)

xlBookDeDestination = xlApp.Workbooks.Open(sMonBookDeDestination)
For i = 1 To xlBookDeCopie.Sheets.Count 
If xlBookDeCopie.Sheets(i).Name = sNomFeuilleACopier Then

xlBookDeCopie.Activate()

xlBookDeCopie.Sheets(sNomFeuilleACopier).Select()

xlBookDeCopie.Sheets(sNomFeuilleACopier).Copy(After:=xlBookDeDestination. _

Sheets(xlBookDeDestination.Sheets.Count))
For j = 1 To xlBookDeDestination.Sheets.Count 
If xlBookDeDestination.Sheets(j).Name = sNomFeuilleCopier Then
MsgBox("La feuille copiée n'a pas pu être renommée, ce nom existe déjà!", MsgBoxStyle.Critical) 
Exit For

ElseIf j = xlBookDeDestination.Sheets.Count Then

xlBookDeDestination.Sheets(j).Name = sNomFeuilleCopier

End If
Next j 
Exit For

ElseIf i = xlBookDeCopie.Sheets.Count Then
MsgBox("La feuille à copier n'existe pas!", MsgBoxStyle.Critical) 
End If
Next i 
xlBookDeCopie.Close(True)xlBookDeDestination.Close(
True) 
xlApp.Quit()

xlBookDeCopie = Nothing

xlBookDeDestination = Nothing

xlApp = Nothing

ElseIf sMonBookDeCopie = sMonBookDeDestination Then
xlApp = CreateObject("Excel.Application") 
xlBookDeCopie = xlApp.Workbooks.Open(sMonBookDeCopie)
For i = 1 To xlBookDeCopie.Sheets.Count 
If xlBookDeCopie.Sheets(i).Name = sNomFeuilleACopier Then

xlBookDeCopie.Activate()

xlBookDeCopie.Sheets(sNomFeuilleACopier).Select()

xlBookDeCopie.Sheets(sNomFeuilleACopier).Copy(After:=xlBookDeCopie. _

Sheets(xlBookDeCopie.Sheets.Count))
For j = 1 To xlBookDeCopie.Sheets.Count 
If xlBookDeCopie.Sheets(j).Name = sNomFeuilleCopier Then
MsgBox("La feuille copiée n'a pas pu être renommée, ce nom existe déjà!", MsgBoxStyle.Critical) 
Exit For

ElseIf j = xlBookDeCopie.Sheets.Count Then

xlBookDeCopie.Sheets(j).Name = sNomFeuilleCopier

End If
Next j 
Exit For

ElseIf i = xlBookDeCopie.Sheets.Count Then
MsgBox("La feuille à copier n'existe pas!", MsgBoxStyle.Critical) 
End If
Next ixlBookDeCopie.Close(True) 
xlApp.Quit()

xlBookDeCopie = Nothing

xlApp = Nothing

End If

Else
MsgBox("Le fichier n'existe pas, vérifier le chemin !", MsgBoxStyle.Critical) 
End If

End Sub


'Exemple d'utilisation
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
Call CopierFeuilleExcel("C:\Classeur3.xls", "C:\Classeur1.xls", "Feuil2", "CopieDeFeuil2")
Call CopierFeuilleExcel("C:\Classeur3.xls", "C:\Classeur3.xls", "Feuil2", "CopieDeFeuil2") 
End Sub


Snippets en rapport avec : Copier, Excel, Feuille



Codes sources en rapport avec : Copier, Excel, Feuille

{Visual Basic, VB6, VB.NET, VB 2005} CODE PERMETTANT DE MANIPULER LES OBJETS EXCEL EN .NET
Le code montre juste les grandes lignes de la manipulation d'une application Excel. ...

{Foxpro} XL8TABLE() : IMPORTE UNE FEUILLE D'UN CLASSEUR EXCEL 97 DANS UNE TABLE VISUAL FOXPRO
* Les noms des champs sont lus dans la première ligne de la feuille * Les colonnes sont importées e...

{Visual Basic, VB6, VB.NET, VB 2005} MACRO POUR TRIER LES FEUILLES D'UN CLASSEUR EXCEL
Cette macro permet de trier dans l'ordre croissant les feuilles d'un classeur excel Il faut créer...

{Visual Basic, VB6, VB.NET, VB 2005} TRIER LES FEUILLES D'UN CLASSEUR EXCEL
Ce code permet de trier dans l'ordre croissant les feuilles d'un classeur excel Sur le formulaire i...

{Visual Basic, VB6, VB.NET, VB 2005} LISTER FICHIERS D'UN DOSSIER
ce p'tit code permet de lister les fichiers d'un dossier choisi en plaçant leur noms, leur type et l...

{Visual Basic, VB6, VB.NET, VB 2005} RESOLVEUR SUDOKU SOUS EXCEL !!!
J'ai voulu m'essayer à l'écriture d'un résolveur capable de résoudre TOUS les sudokus sur les princi...

{Visual Basic, VB6, VB.NET, VB 2005} BIG BEN DANS UNE FEUILLE DE CALCUL
Une application Excel qui affiche la célèbre horloge de la Clock Tower du Palais de Westminster. Pho...

{Visual Basic, VB6, VB.NET, VB 2005} UN CALENDRIER SOUS EXCEL !!!
Encore un, mais mon trip était : - afficher les jour fériés des périodes scolaires (à mettre à...

{Visual Basic, VB6, VB.NET, VB 2005} UN COLOR PICKER SANS API ET UNIQUEMENT PAR CALCUL
Certain diront : encore un color picker ! Oui ! Mais celui-ci n'utilise pas d'API pour récupérer l...

{Visual Basic, VB6, VB.NET, VB 2005} MORPION2.XLS
Un petit jeu de morpion, avec lequel vous pouvez jouer contre l'ordinateur. Simple d'utilisation, re...