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 : 11369
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} ÔTER PROTECTION FEUILLE D'UN CLASSEUR EXCEL & TROUVER MOT DE PASSE FICHIER
Version de base Enlever la protection de toutes les feuilles d'un classeur EXCEL. le code qui est ...

{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...

{SQL} COMMENT EXPORTER DES DONNERS VERS EXCEL
cette source existe déjas ici http://www.mysqlfaqs.net/mysql-faqs/Data-Back-Up/Export-Data/How-to-e...

{SQL} COMMENT EXPORTER DES DONNERS VERS EXCEL
cette source existe déjas ici http://www.mysqlfaqs.net/mysql-faqs/Data-Back-Up/Export-Data/How-to-e...

{Visual Basic, VB6, VB.NET, VB 2005} LIEN HYPERTEXTE SOUS EXCEL EN PARTAGE
Création de liens hypertextes sous excel lorsque le classeur est en partage. En effet, lorsque le c...

{Visual Basic, VB6, VB.NET, VB 2005} COPIER LES TEXTES D'UNE DIAPOSITIVE POWERPOINT SAUF LES ESPACES RÉSERVÉS
Ne vous est-il pas arriver de vouloir copier/coller les textes d'une diapositive PowerPoint ? En gé...

{Visual Basic, VB6, VB.NET, VB 2005} DÉMINEUR VBA EXCEL
Un petit démineur en VBA Excel avec lageur, hauteur et nombre de mine variable ...