Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Déplacement d'un onglet(valeur) complet d'un fichier vers un aut re

6 réponses
Avatar
FB
bjr tout le monde

j'aimerais faire un genre de copier coller d'un onglet d'un fichier excel
vers un autre mais je veux uniquement garder les valeurs et le format (pas de
formules).

Il y a-t-il moyen de faire ce genre de truc en VBA????

Merci d'avance à toutes les aides qui me seront apporté

6 réponses

Avatar
MichDenis
Un petit exemple :

'------------------------------
Sub Copier_Collage()

With Worksheets("Feuil3") 'Feuille à copier
.UsedRange.Copy
With Worksheets("Feuil2") 'Feuille de destination
.Range("A1").PasteSpecial (xlPasteValues)
.Range("A1").PasteSpecial (xlPasteFormats)
End With
End With
Application.CutCopyMode = False
End Sub
'------------------------------


"FB" a écrit dans le message de news:

bjr tout le monde

j'aimerais faire un genre de copier coller d'un onglet d'un fichier excel
vers un autre mais je veux uniquement garder les valeurs et le format (pas de
formules).

Il y a-t-il moyen de faire ce genre de truc en VBA????

Merci d'avance à toutes les aides qui me seront apporté
Avatar
Daniel
Bonjour.
Essaie :

Sub test()
Sheets("Feuil1").Copy Before:=Workbooks("Classeur2").Sheets(1)
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

Cordialement.
Daniel
"FB" a écrit dans le message de news:

bjr tout le monde

j'aimerais faire un genre de copier coller d'un onglet d'un fichier excel
vers un autre mais je veux uniquement garder les valeurs et le format (pas
de
formules).

Il y a-t-il moyen de faire ce genre de truc en VBA????

Merci d'avance à toutes les aides qui me seront apporté


Avatar
MichDenis
On pourrait même faire plus court :
'------------------
Sub test()
Sheets("Feuil1").Copy Before:=Workbooks("Classeur2").Sheets(1)
With ActiveSheet
.UsedRange.Value = .UsedRange.Value
End With
End Sub
'------------------


"Daniel" a écrit dans le message de news:

Bonjour.
Essaie :

Sub test()
Sheets("Feuil1").Copy Before:=Workbooks("Classeur2").Sheets(1)
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

Cordialement.
Daniel
"FB" a écrit dans le message de news:

bjr tout le monde

j'aimerais faire un genre de copier coller d'un onglet d'un fichier excel
vers un autre mais je veux uniquement garder les valeurs et le format (pas
de
formules).

Il y a-t-il moyen de faire ce genre de truc en VBA????

Merci d'avance à toutes les aides qui me seront apporté


Avatar
FB
Merci pour ces info ...

Mais (il y a tjrs un mais.. ;) ) dans vos différentes explications il faut
que les 2 classeurs soit ouvert.....
Comment faire pour allé rechercher une feuille dans un classeur fermé????

il y a moyen???
Est ce qu'il suffit de mettre le chemin d'accès???



On pourrait même faire plus court :
'------------------
Sub test()
Sheets("Feuil1").Copy Before:=Workbooks("Classeur2").Sheets(1)
With ActiveSheet
.UsedRange.Value = .UsedRange.Value
End With
End Sub
'------------------


"Daniel" a écrit dans le message de news:

Bonjour.
Essaie :

Sub test()
Sheets("Feuil1").Copy Before:=Workbooks("Classeur2").Sheets(1)
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

Cordialement.
Daniel
"FB" a écrit dans le message de news:

bjr tout le monde

j'aimerais faire un genre de copier coller d'un onglet d'un fichier excel
vers un autre mais je veux uniquement garder les valeurs et le format (pas
de
formules).

Il y a-t-il moyen de faire ce genre de truc en VBA????

Merci d'avance à toutes les aides qui me seront apporté








Avatar
Daniel
Bonjour.
Donne toutes les infos d'entrée, ça évite de tatonner. Le plus simple, c'est
d'ouvrir le classeur le temps de la copie et de le refermer ensuite.
Daniel
"FB" a écrit dans le message de news:


Merci pour ces info ...

Mais (il y a tjrs un mais.. ;) ) dans vos différentes explications il faut
que les 2 classeurs soit ouvert.....
Comment faire pour allé rechercher une feuille dans un classeur fermé????

il y a moyen???
Est ce qu'il suffit de mettre le chemin d'accès???



On pourrait même faire plus court :
'------------------
Sub test()
Sheets("Feuil1").Copy Before:=Workbooks("Classeur2").Sheets(1)
With ActiveSheet
.UsedRange.Value = .UsedRange.Value
End With
End Sub
'------------------


"Daniel" a écrit dans le message de news:

Bonjour.
Essaie :

Sub test()
Sheets("Feuil1").Copy Before:=Workbooks("Classeur2").Sheets(1)
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

Cordialement.
Daniel
"FB" a écrit dans le message de news:

bjr tout le monde

j'aimerais faire un genre de copier coller d'un onglet d'un fichier
excel
vers un autre mais je veux uniquement garder les valeurs et le format
(pas
de
formules).

Il y a-t-il moyen de faire ce genre de truc en VBA????

Merci d'avance à toutes les aides qui me seront apporté










Avatar
MichDenis
A ) IL n'existe aucun moyen d'importer des formats d'un classeur fermé.

B ) Voici un exemple comment faire pour importer des données d'une feuille d'un classeur fermé.

Tu dois ajouter la bibliothèque suivante à ton application
Fenêtre éditeur de code, barre des menus , outils , références
et tu coches :"Microsoft Activex Data Object 2.x Librairy"

Tu adaptes les différentes variables selon la configuration de ton application :

'---------------------------------
Sub MaRequêteAvecADO()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String, Rg As Range
Dim File As String, C As Integer

'Fichier sur lequel se fera la requête :
File = "C:testQuery.xls"

'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "denis"

'Défini la première cellule où seront copiées les
'données des requêtes ADO
With Worksheets("Feuil1")
If .Range("A1") = "" Then
Set Rg = .Range("A1")
Else
Set Rg = .Range("A" & .Range("A65356").End(xlUp).Row)(2)
End If
End With

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'La requête qui sera exécutée.
Requete = "SELECT * From [" & NomFeuille & "$]"

Rst.Open Requete, Conn, adOpenForwardOnly, adLockOptimistic


'Copie les étiquettes du recordset vers Excel
If Ok <> 1 Then
Do
Rg.Offset(, C) = Rst.Fields(C).Name
C = C + 1
X = X + 1
Loop Until X = Rst.Fields.Count
Rg.Offset(1).CopyFromRecordset Rst
Else
Rg.CopyFromRecordset Rst
End If

Rst.Close: Conn.Close
Set Rst = Nothing: Set Conn = Nothing

End Sub
'-----------------------------------------------





"FB" a écrit dans le message de news:


Merci pour ces info ...

Mais (il y a tjrs un mais.. ;) ) dans vos différentes explications il faut
que les 2 classeurs soit ouvert.....
Comment faire pour allé rechercher une feuille dans un classeur fermé????

il y a moyen???
Est ce qu'il suffit de mettre le chemin d'accès???



On pourrait même faire plus court :
'------------------
Sub test()
Sheets("Feuil1").Copy Before:=Workbooks("Classeur2").Sheets(1)
With ActiveSheet
.UsedRange.Value = .UsedRange.Value
End With
End Sub
'------------------


"Daniel" a écrit dans le message de news:

Bonjour.
Essaie :

Sub test()
Sheets("Feuil1").Copy Before:=Workbooks("Classeur2").Sheets(1)
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

Cordialement.
Daniel
"FB" a écrit dans le message de news:

bjr tout le monde

j'aimerais faire un genre de copier coller d'un onglet d'un fichier excel
vers un autre mais je veux uniquement garder les valeurs et le format (pas
de
formules).

Il y a-t-il moyen de faire ce genre de truc en VBA????

Merci d'avance à toutes les aides qui me seront apporté