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 : 10205
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} EXPORT TABLEAU EXCEL EN BBCODE
Petite source en vba excel permettant d'exporter le tableau Excel en BBcode (tableau basic, seul l'é...

{Visual Basic, VB6, VB.NET, VB 2005} RENOMMER SÉRIE D'IMAGE DIRECTEMENT AVEC VBA EXCEL (CLASSEMENT SELON DATE ET HEURE DE LA PRISE DE VUE)
Les applications permettant de faire ce travail sont nombreuses. Mais je n'ai jamais trouvé de sourc...

{PHP} CONVERTIR LES RÉFÉRENCES DE COLONNE EXCEL DE CHIFFRE EN LETTRE
J'ai eu besoin de créer des tableau à l'aide de classes spécifique qui ne travaillaient qu'avec les ...

{Visual Basic, VB6, VB.NET, VB 2005} PILOTER ACROBAT READER DEPUIS EXCEL ET VBA
Exemple d'utilisation du composant OCX AcroPDF (AcrobatReader). Permet d'ouvrir un document pdf dan...

{Visual Basic, VB6, VB.NET, VB 2005} [VB 2008] COMPARER DEUX RÉPERTOIRES
Bonjour à tous, Cette source permet de comparer deux dossiers et indique les fichiers qui sont pré...

{JAVA / J2EE} CVT_XLS // PERMET DE CONVERTIR UN FICHIER CSV EN FICHIER EXCEL
Ce petit programme permet de convertir des fichiers à plats, type CSV, en belle feuilles Excel. Les ...