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

comment copier une feuille xl

5 réponses
Avatar
joseph84
Bonjour tout le monde

voila mon probleme j ai besoin de copier une feuille xl et la coller
sur une autre qui se trouve dans un autre fichier

je sais comment faire ca mais ma procedure est tres longue et sa
demande bcp de code


Merci

NB: les enregistrement commence de la ligne 2 dans le fichier source
et de la ligne 3 dans le fichier destination
et les colonnes c les memes de A jusqu a CC

5 réponses

Avatar
MichD
Bonjour,

Adapte le nom des feuilles si nécessaire.

'----------------------------------------
Sub Copie_Feuille()
Dim DerCol As Integer, DerLig As Long, Rg As Range
Dim LastRow As Long, R As Range, C As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1") 'feuille source
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With

With Worksheets("Feuil2") 'Feuille de destination
LastRow = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
Rg.Copy .Range("A" & LastRow)
For Each R In Rg.Rows
.Range(R.Address).EntireRow.RowHeight = R.RowHeight
Next
For Each C In Rg.Columns
.Range(C.Address).EntireColumn.ColumnWidth = C.ColumnWidth
Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True

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



MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


Bonjour tout le monde

voila mon probleme j ai besoin de copier une feuille xl et la coller
sur une autre qui se trouve dans un autre fichier

je sais comment faire ca mais ma procedure est tres longue et sa
demande bcp de code


Merci

NB: les enregistrement commence de la ligne 2 dans le fichier source
et de la ligne 3 dans le fichier destination
et les colonnes c les memes de A jusqu a CC
Avatar
joseph84
On 26 avr, 15:13, "MichD" wrote:
Bonjour,

Adapte le nom des feuilles si nécessaire.

'----------------------------------------
Sub Copie_Feuille()
Dim DerCol As Integer, DerLig As Long, Rg As Range
Dim LastRow As Long, R As Range, C As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1") 'feuille source
   DerLig = .Cells.Find(What:="*", _
                   LookIn:=xlFormulas, _
                SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious).Row
    DerCol = .Cells.Find(What:="*", _
                   LookIn:=xlFormulas, _
             SearchOrder:=xlByColumns, _
        SearchDirection:=xlPrevious).Column
    Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With

With Worksheets("Feuil2") 'Feuille de destination
    LastRow = .Cells.Find(What:="*", _
                   LookIn:=xlFormulas, _
                SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious).Row + 1
    Rg.Copy .Range("A" & LastRow)
    For Each R In Rg.Rows
        .Range(R.Address).EntireRow.RowHeight = R.RowHeight
    Next
    For Each C In Rg.Columns
        .Range(C.Address).EntireColumn.ColumnWidth = C.ColumnWi dth
    Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True

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

MichD
--------------------------------------------
"joseph84"  a écrit dans le message de groupe de discussion :


Bonjour tout le monde

voila mon probleme j ai besoin de copier une feuille xl et la coller
sur une autre qui se trouve dans un autre fichier

je sais comment faire ca mais ma procedure est tres longue et sa
demande bcp de code

Merci

NB: les enregistrement commence de la ligne 2 dans le fichier source
et de la ligne 3 dans le fichier destination
       et les colonnes c les memes de A jusqu a CC



Merci pour ton aide

voila j ai un probleme avec ton code il me sort une erreu "varibale
object ou variable de bloc with non definie

voila mon code j ai changer juste les noms des feuilles

Sub Copie_Feuille()
Dim DerCol As Integer, DerLig As Long, Rg As Range
Dim LastRow As Long, R As Range, C As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
With Workbooks("source.xls").Worksheets("Feuil1") 'feuille source
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With


With Workbooks("destination.xlsm").Worksheets("Feuil1") 'Feuille de
destination
LastRow = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
Rg.Copy .Range("A" & LastRow)
For Each R In Rg.Rows
.Range(R.Address).EntireRow.RowHeight = R.RowHeight
Next
For Each C In Rg.Columns
.Range(C.Address).EntireColumn.ColumnWidth = C.ColumnWidth
Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True


End Sub

merci
Avatar
MichD
ça bloque probablement là :

With Workbooks("destination.xlsm").Worksheets("Feuil1") 'Feuille de
destination
LastRow = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1


Comme tu m'as dit que la première cellule ne pouvait pas être plus haute que la ligne 3 (A3)
j'ai tenu pour acquis qu'il y avait de l'information en ligne 1 et ligne 2
Si la feuille de destination est totalement vide, cela provoque une erreur 91 avec le message
que tu as mentionné, car la méthode "Find" ne peut rien trouver !

Si tu veux conserver tes 2 premières lignes vides de la feuille de destination,
enlève cette ligne de code et la ligne suivante sera ceci :

Rg.Copy .Range("A3")
Au lieu de
Rg.Copy .Range("A" & LastRow)



MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


On 26 avr, 15:13, "MichD" wrote:
Bonjour,

Adapte le nom des feuilles si nécessaire.

'----------------------------------------
Sub Copie_Feuille()
Dim DerCol As Integer, DerLig As Long, Rg As Range
Dim LastRow As Long, R As Range, C As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil1") 'feuille source
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With

With Worksheets("Feuil2") 'Feuille de destination
LastRow = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
Rg.Copy .Range("A" & LastRow)
For Each R In Rg.Rows
.Range(R.Address).EntireRow.RowHeight = R.RowHeight
Next
For Each C In Rg.Columns
.Range(C.Address).EntireColumn.ColumnWidth = C.ColumnWidth
Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True

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

MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


Bonjour tout le monde

voila mon probleme j ai besoin de copier une feuille xl et la coller
sur une autre qui se trouve dans un autre fichier

je sais comment faire ca mais ma procedure est tres longue et sa
demande bcp de code

Merci

NB: les enregistrement commence de la ligne 2 dans le fichier source
et de la ligne 3 dans le fichier destination
et les colonnes c les memes de A jusqu a CC



Merci pour ton aide

voila j ai un probleme avec ton code il me sort une erreu "varibale
object ou variable de bloc with non definie

voila mon code j ai changer juste les noms des feuilles

Sub Copie_Feuille()
Dim DerCol As Integer, DerLig As Long, Rg As Range
Dim LastRow As Long, R As Range, C As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
With Workbooks("source.xls").Worksheets("Feuil1") 'feuille source
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With


With Workbooks("destination.xlsm").Worksheets("Feuil1") 'Feuille de
destination
LastRow = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
Rg.Copy .Range("A" & LastRow)
For Each R In Rg.Rows
.Range(R.Address).EntireRow.RowHeight = R.RowHeight
Next
For Each C In Rg.Columns
.Range(C.Address).EntireColumn.ColumnWidth = C.ColumnWidth
Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True


End Sub

merci
Avatar
joseph84
On 26 avr, 16:08, "MichD" wrote:
a bloque probablement l :

With Workbooks("destination.xlsm").Worksheets("Feuil1") 'Feuille de
destination
    LastRow = .Cells.Find(What:="*", _
                   LookIn:=xlFormulas, _
                SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious).Row + 1

Comme tu m'as dit que la premi re cellule ne pouvait pas tre plus haute q ue la ligne 3 (A3)
j'ai tenu pour acquis qu'il y avait de l'information en ligne 1 et ligne 2
Si la feuille de destination est totalement vide, cela provoque une erreu r 91 avec le message
que tu as mentionn , car la m thode "Find" ne peut rien trouver !

Si tu veux conserver tes 2 premi res lignes vides de la feuille de destin ation,
enl ve cette ligne de code et la ligne suivante sera ceci :

Rg.Copy .Range("A3")
Au lieu de
Rg.Copy .Range("A" & LastRow)

MichD
--------------------------------------------
"joseph84"  a crit dans le message de groupe de discussion :


On 26 avr, 15:13, "MichD" wrote:





> Bonjour,

> Adapte le nom des feuilles si n cessaire.

> '----------------------------------------
> Sub Copie_Feuille()
> Dim DerCol As Integer, DerLig As Long, Rg As Range
> Dim LastRow As Long, R As Range, C As Range
> Application.ScreenUpdating = False
> Application.EnableEvents = False
> With Worksheets("Feuil1") 'feuille source
>    DerLig = .Cells.Find(What:="*", _
>                    LookIn:=xlFormulas, _
>                 SearchOrder:=xlByRows, _
>             SearchDirection:=xlPrevious).Row
>     DerCol = .Cells.Find(What:="*", _
>                    LookIn:=xlFormulas, _
>              SearchOrder:=xlByColumns, _
>         SearchDirection:=xlPrevious).Column
>     Set Rg = .Range("A1", .Cells(DerLig, DerCol))
> End With

> With Worksheets("Feuil2") 'Feuille de destination
>     LastRow = .Cells.Find(What:="*", _
>                    LookIn:=xlFormulas, _
>                 SearchOrder:=xlByRows, _
>             SearchDirection:=xlPrevious).Row + 1
>     Rg.Copy .Range("A" & LastRow)
>     For Each R In Rg.Rows
>         .Range(R.Address).EntireRow.RowHeight = R.RowHeight
>     Next
>     For Each C In Rg.Columns
>         .Range(C.Address).EntireColumn.ColumnWidth = C.Column Width
>     Next
> End With
> Application.ScreenUpdating = True
> Application.EnableEvents = True

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

> MichD
> --------------------------------------------
> "joseph84"  a crit dans le message de groupe de discussion :
>

> Bonjour tout le monde

> voila mon probleme j ai besoin de copier une feuille xl et la coller
> sur une autre qui se trouve dans un autre fichier

> je sais comment faire ca mais ma procedure est tres longue et sa
> demande bcp de code

> Merci

> NB: les enregistrement commence de la ligne 2 dans le fichier source
> et de la ligne 3 dans le fichier destination
>        et les colonnes c les memes de A jusqu a CC

Merci pour ton aide

voila j ai un probleme avec ton code il me sort une erreu "varibale
object ou variable de bloc with non definie

voila mon code j ai changer juste les noms des feuilles

Sub Copie_Feuille()
Dim DerCol As Integer, DerLig As Long, Rg As Range
Dim LastRow As Long, R As Range, C As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
With Workbooks("source.xls").Worksheets("Feuil1") 'feuille source
   DerLig = .Cells.Find(What:="*", _
                   LookIn:=xlFormulas, _
                SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious).Row
    DerCol = .Cells.Find(What:="*", _
                   LookIn:=xlFormulas, _
             SearchOrder:=xlByColumns, _
        SearchDirection:=xlPrevious).Column
    Set Rg = .Range("A1", .Cells(DerLig, DerCol))
End With

With Workbooks("destination.xlsm").Worksheets("Feuil1") 'Feuille de
destination
    LastRow = .Cells.Find(What:="*", _
                   LookIn:=xlFormulas, _
                SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious).Row + 1
    Rg.Copy .Range("A" & LastRow)
    For Each R In Rg.Rows
        .Range(R.Address).EntireRow.RowHeight = R.RowHeight
    Next
    For Each C In Rg.Columns
        .Range(C.Address).EntireColumn.ColumnWidth = C.ColumnWi dth
    Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub

merci- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Desole je me suis trompe

dans mon fichier source les enregistrement commence de la lige 3 et
dans le fichier destination commence de la ligne 2

et le programme arrete sur ce bloc de code

LastRow = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1


moi j ai enleve Rg.Copy .Range("A" & LastRow) et j ai mis a la place
Rg.Copy .Range("A3")

mais toujour le meme probleme

merci
Avatar
MichD
Tu enlèves, effaces, supprimes cette ligne de code :


LastRow = .Cells.Find(What : ="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1




MichD
--------------------------------------------