exporter une feuille vers un autre fichier excel

alfonso

XLDnaute Junior
bonjour

je me demandais si c'est possible de faire une macro qui une fois activé exporte une feuille de calcul puis ouvre un autre fichier excel, crée une feuille vierge et colle ma feuille exporter ??
 
Dernière édition:
G

Guest

Guest
Re : exporter une feuille vers un autre fichier excel

bonjour,

Oui c'est possible. Simplement. si la feuille à copier est 'Feuil1':

Code:
sheets("Feuil1").copy

copie la feuil1 et ouvre un nouveau classeur avec la feuille copiée.

A bientôt
 

alfonso

XLDnaute Junior
Re : exporter une feuille vers un autre fichier excel

au lieu de me créer une nouveau fichier et de me copier ma feuille on peut pas lui dire de copier la feuille dans un classeur X

With thisworkbooks
Sheets("indicateurs").Copy

Workbooks.Open Filename:= _
"\\dom2.ad.sys\dfsbor1root\BOR1_Homedir4\aozel\My Documents\SAVE\indicateur globale diffusions ITP appros.xls"

Windows("indicateur globale diffusions ITP appros.xls").Activate
ActiveWindow.Close (True)
End With

'
End Sub
voila la macro que j'avais écrit en fait je veux qui me colle la feuille dans "indicateur globale diffusions ITP appros.xls"
 
G

Guest

Guest
Re : exporter une feuille vers un autre fichier excel

Bonjour,

Un exemple à adapter à la situation.

Code:
Dim sh As Worksheet
Set sh = Sheets("Origine") 'Feuille à copier

'Ouvrir le classeur destination
Workbooks.Open Filename:=ThisWorkbook.Path & "\classeur4.xls"

'Copier la feuille dans le classeur destination
sh.Copy After:=Workbooks("Classeur4.xls").Sheets(1)

bonne programation
 

alfonso

XLDnaute Junior
Re : exporter une feuille vers un autre fichier excel

ok ca fonctionne correctement et dernière chose peut-on precisé de copié uniquement les valeurs des cellules et non les formules

peut etre en utilisant la commande "PasteSpecial"
 
G

Guest

Guest
Re : exporter une feuille vers un autre fichier excel

Avec ceci:

Code:
Dim sh As Worksheet
Set sh = Sheets("Origine") 'Feuille à copier

'Ouvrir le classeur destination
Workbooks.Open Filename:=ThisWorkbook.Path & "\classeur4.xls"

'Copier la feuille dans le classeur destination
sh.Copy After:=Workbooks("Classeur4.xls").Sheets(1)
With ActiveSheet
    .UsedRange.Copy
    .UsedRange.Range("A1").PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False

La méthode PasteSpecial d'une feuille diffère de la méthode PasteSpecial d'une plage de cellule. C'est pour cela que tout ne peut être fait en une seule opération.

A bientôt
 

alfonso

XLDnaute Junior
Re : exporter une feuille vers un autre fichier excel

j'aimerais améliorer le code

en faite au lieu qu'il me crée un nouveau classeur j'aimerais que si le nom du classeur exporté existe deja alors il le remplace
est-ce possible d'indiqué ca dans la macro ??
 
G

Guest

Guest
Re : exporter une feuille vers un autre fichier excel

Bonjour Alfonso,

A quel moment nommes-tu le classeur destination, quand l'enregistres-tu?

sur quel critère chercher si un classeur existe.

Avec la solution plus haut tu peux enregistrer le classeur destination en écrasant l'existant. Si tu veux que cela ce fasse automatiquement, il nous faut plus de détails.

Bonne journée à toi
 

alfonso

XLDnaute Junior
Re : exporter une feuille vers un autre fichier excel

slt

j'ai plusieur classeur ou j'ai écrit la macro que tu ma donné et le nom de la feuille est spécifique au classeur
donc il n'existe pas deux classeur identique

ensuitte à l'origine le classeur de destination est vierge donc quand j'exporte une feuille d'un classeur la une nouvelle feuille se crée pour l'instant tout va bien

mais quand je met a jour la feuille du classeur que j'exporte alors je doit la réexporter dans le classeur de destination est comme le nom de la feuille est identique alors il doit remplacé l'existante par la nouvelle

j'espere que j'ai répondu à tes questions
 
G

Guest

Guest
Re : exporter une feuille vers un autre fichier excel

Re bonjour Alfonso,

Voici un nouveau code.

Code:
    Dim sh As Worksheet, sh2 As Worksheet
    Dim NomFeuilleDestination As String
    Set sh = Sheets("Origine")                        'Feuille à copier
    
    NomFeuilleDestination = "Destination"
    
    'Ouvrir le classeur destination
    Workbooks.Open Filename:=ThisWorkbook.Path & "\classeur4.xls"
    
    ' Empêcher les avertissements excel
    Application.DisplayAlerts = False
    
    ' Eviter le message d'erreur si la feuille destination n'existe pas
    On Error Resume Next
    
    ' Tester si la feuille Destination existe
    Set sh2 = ActiveWorkbook.Sheets(NomFeuilleDestination)
    
    ' Si elle existe on la supprimer
    If Not sh2 Is Nothing Then sh2.Delete
    
    'Rétablir la gestion normale des erreurs
    On Error GoTo 0
    
    ' Rétablir les avertissement
    Application.DisplayAlerts = True
    
    'Coller la feuille Origine dans le classeur destination
    sh.Copy After:=Workbooks("Classeur4.xls").Sheets(1)
    With ActiveSheet
        .UsedRange.Copy
        .UsedRange.Range("A1").PasteSpecial xlPasteValues
        .Name = NomFeuilleDestination
    End With
    Application.CutCopyMode = False

Il te faudra renseigner le nom de la feuille destination, tu l'auras compris, j'en suis sûr.

A bientôt.
 

alfonso

XLDnaute Junior
Re : exporter une feuille vers un autre fichier excel

décidement tu es trop fort ca marche

mais admettons que au lieu d'écrire manuellement le nom de la feuille de destination je lui indique une cellule qui porte le nom de la feuille de destination

Dim sh As Worksheet, sh2 As Worksheet
Dim NomFeuilleDestination As String
Set sh = Sheets(4) 'Feuille à copier

NomFeuilleDestination = Range("C3").value

la si la feuille n'existe pas il va me la crée avec comme nom celui qui est en C3
mais si je réexporte la feuille alors il me la colle dans le classeur de destination avec comme nom, le nom d'origine

peut on modifier cela ?
 
G

Guest

Guest
Re : exporter une feuille vers un autre fichier excel

Re,

Là j'ai du mal à te suivre....

Si tu réexporte ta feuille dans un nouveau classeur ou un classeur existant, si le nom existe déjà la feuille est supprimée et s'il n'existe pas elle est créee avec le nom en [C3]. Ok?

Qu'est - ce que tu appeles 'Le nom d'origine'

Je vois pas le blème....
 

alfonso

XLDnaute Junior
Re : exporter une feuille vers un autre fichier excel

la feuille que j'exporte et la feuille d'origine et elle s'appelle ET1730 (sheet 4)
et dans la macro

Dim sh As Worksheet, sh2 As Worksheet
Dim NomFeuilleDestination As String
Set sh = Sheets(4) 'Feuille à copier

NomFeuilleDestination = Range("C3").Value

le nom de la feuille de destination se trouve dans la cellue C3
or quand j'exécute la macro le nom de ma feuille n'est pas le nom qui est dans la cellule C3 mais le nom de la feuille d'origine ET1730

donc au lieu d'indiqué manuellement le nom de la feuille de destination (nom qui est dans la cellule C3), j'aimerais qui cherche automatiquement le nom de la feuille de destination

j'espere que j'ai été claire
 

Discussions similaires

Statistiques des forums

Discussions
312 683
Messages
2 090 915
Membres
104 695
dernier inscrit
akke