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 : 8519
Catégorie(s) : Divers
Langages dispo pour ce code :
- VB6, VBA
- VB 2005, VB.NET 1.x



Langage : VB6 , VBA
Date ajout : 17/11/2006
Posté par Drikce06 [Liste]
DateMAJ : 17/11/2006
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 Excel.Application
    Dim xlBookDeCopie As Workbook
    Dim xlBookDeDestination As Workbook
    Dim As Integer
    Dim As Integer
  If sMonBookDeCopie <> sMonBookDeDestination Then
    Set xlApp = CreateObject("Excel.Application")
    Set xlBookDeCopie = xlApp.Workbooks.Open(sMonBookDeCopie)
    Set xlBookDeDestination = xlApp.Workbooks.Open(sMonBookDeDestination)
    For i = 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 = 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à!", vbCritical
              
           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!", vbCritical
        
        End If
          
    Next i
    
    xlBookDeCopie.Close True
    xlBookDeDestination.Close True
    xlApp.Quit
    
    Set xlBookDeCopie = Nothing
    Set xlBookDeDestination = Nothing
    Set xlApp = Nothing
  ElseIf sMonBookDeCopie = sMonBookDeDestination Then
    Set xlApp = CreateObject("Excel.Application")
    Set xlBookDeCopie = xlApp.Workbooks.Open(sMonBookDeCopie)
    For i = 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 = 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à!", vbCritical
              
           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!", vbCritical
        
        End If
          
    Next i
    
    xlBookDeCopie.Close True
    xlApp.Quit
    
    Set xlBookDeCopie = Nothing
    Set xlApp = Nothing
  End If
  
Else
    MsgBox "Le fichier n'existe pas, vérifier le chemin !", vbCritical
    
End If
End Sub

'Exemple  d'utilisation
Private Sub CommandButton1_Click()
    Call CopierFeuilleExcel("C:\Classeur3.xls""C:\Classeur1.xls""Feuil2""CopieDeFeuil2")
    
    Call CopierFeuilleExcel("C:\Classeur3.xls""C:\Classeur3.xls""Feuil2""CopieDeFeuil2")
End Sub
  
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} MORPION2.XLS
Un petit jeu de morpion, avec lequel vous pouvez jouer contre l'ordinateur. Simple d'utilisation, re...

{Visual Basic, VB6, VB.NET, VB 2005} PERFORMANCE MEASURER
Cet utilitaire est à intégrer dans le code de vos projets VB6. Il mesure le temps d'éxécution de pro...

{Visual Basic, VB6, VB.NET, VB 2005} ACCESS TO ( XML,EXCEL )
Avez-vous déjà utilisé des données sous forme des fichiers xml ou excel ? Ce programme va t’aider...

{JAVA / J2EE} IMPORTER FICHIER EXCEL DANS UN JTABLE
Cette permet à partir d'un fichier excel (sauf version 2007) de créer un JTable qui pourra être insé...

{Visual Basic, VB6, VB.NET, VB 2005} COMPARATEUR EXCEL EN MASSE, AMÉLIORATIONS
mabrouklepoux avait proposé un comparateur de fichiers Excel. http://www.vbfrance.com/code.aspx?ID=3...

{Visual Basic, VB6, VB.NET, VB 2005} EXCEL <> AUTOCAD LT
suite à des demandes régulières sur les liaisons DDE entre Autocad et excel, je vous joins cette ap...