Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel.
J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles
figure un tableau avec les noms de champs sur la premiere ligne. Ensuite la
longueur des tableau varie en fonction des feuilles (59 lignes, 235
lignes...).
Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des données
réparties sur toutes les feuilles sur un seul tableau situé sur une feuille.
MA méthode pour l'instant est la suivante. Je crée une macro qui fait un
copier-coller du tableau de la premiere feuille et la colle sur la "feuil1".
Le probleme et que je suis obligé de prendre large pour être sur de ne pas
oublié des enregistrements donc le résultat final est un tableau récap avec
des ligne vides. Obligation de les supprimer manuellement pour pouvoir les
triées ensuite ! De plus je suis obliger de faire un copier coller de la
macro en x exemplaire ( en fonction du nombre de feuille) pour recommencer
l'opération. Et changer à la mains la valeur de la cellule où le copier
coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un bout
de code ou macro pour faire le maximum en auto.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Lydya
Bonjour,
Voici une macro qui: ->efface les données de la feuille 1 (que je suppose être la feuille récapitulative) ->copie la ligne 7 (que je suppose être les entêtes de colonnes) de la feuille 2 sur la feuille 1 ->copie la plage des données des feuilles 2 au nombre total de feuilles du classeur sur la première feuille ->la plage copiée commence à partir de la ligne 8 jusqu'à la dernière ligne contenant des données (colonnes A à F). -- Sub CopieFeuilles() Dim l As Long Dim f As Integer Dim Plage As Range Dim Lignes As Long Sheets(1).Cells.Clear Sheets(2).Range("A7:F7").Copy _ Destination:=Sheets(1).Range("A1") l = 2 For f = 2 To Sheets.Count If Application.CountA(Sheets(f).Range("A8"). _ CurrentRegion) <> 0 Then With Sheets(f) Lignes = .Range("A:A").Find("*", , , , , xlPrevious).Row Set Plage = .Range(.Cells(8, "A"), .Cells(Lignes, "F")) End With Plage.Copy Destination:=Sheets(1).Cells(l, "A") l = Sheet(1).Range("A:A").Find("*", , , , , xlPrevious).Row + 1 End If Next f End Sub --
Lydya
"Leonweb73" a écrit dans le message de news:bnaj20$fs0$
Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel. J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles figure un tableau avec les noms de champs sur la premiere ligne. Ensuite la
longueur des tableau varie en fonction des feuilles (59 lignes, 235 lignes...). Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des données réparties sur toutes les feuilles sur un seul tableau situé sur une feuille.
MA méthode pour l'instant est la suivante. Je crée une macro qui fait un copier-coller du tableau de la premiere feuille et la colle sur la "feuil1".
Le probleme et que je suis obligé de prendre large pour être sur de ne pas oublié des enregistrements donc le résultat final est un tableau récap avec
des ligne vides. Obligation de les supprimer manuellement pour pouvoir les triées ensuite ! De plus je suis obliger de faire un copier coller de la macro en x exemplaire ( en fonction du nombre de feuille) pour recommencer l'opération. Et changer à la mains la valeur de la cellule où le copier coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un bout
********************************************** MOUNTAIN BIKING IS NOT A CRIME **********************************************
Bonjour,
Voici une macro qui:
->efface les données de la feuille 1 (que je suppose être la feuille
récapitulative)
->copie la ligne 7 (que je suppose être les entêtes de colonnes) de la
feuille 2 sur la feuille 1
->copie la plage des données des feuilles 2 au nombre total de feuilles du
classeur sur la première feuille
->la plage copiée commence à partir de la ligne 8 jusqu'à la dernière ligne
contenant des données (colonnes A à F).
--
Sub CopieFeuilles()
Dim l As Long
Dim f As Integer
Dim Plage As Range
Dim Lignes As Long
Sheets(1).Cells.Clear
Sheets(2).Range("A7:F7").Copy _
Destination:=Sheets(1).Range("A1")
l = 2
For f = 2 To Sheets.Count
If Application.CountA(Sheets(f).Range("A8"). _
CurrentRegion) <> 0 Then
With Sheets(f)
Lignes = .Range("A:A").Find("*", , , , , xlPrevious).Row
Set Plage = .Range(.Cells(8, "A"), .Cells(Lignes, "F"))
End With
Plage.Copy Destination:=Sheets(1).Cells(l, "A")
l = Sheet(1).Range("A:A").Find("*", , , , , xlPrevious).Row + 1
End If
Next f
End Sub
--
Lydya
"Leonweb73" <leonweb73@hotmail.com> a écrit dans le message de
news:bnaj20$fs0$1@news-reader3.wanadoo.fr...
Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel.
J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles
figure un tableau avec les noms de champs sur la premiere ligne. Ensuite
la
longueur des tableau varie en fonction des feuilles (59 lignes, 235
lignes...).
Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des données
réparties sur toutes les feuilles sur un seul tableau situé sur une
feuille.
MA méthode pour l'instant est la suivante. Je crée une macro qui fait un
copier-coller du tableau de la premiere feuille et la colle sur la
"feuil1".
Le probleme et que je suis obligé de prendre large pour être sur de ne pas
oublié des enregistrements donc le résultat final est un tableau récap
avec
des ligne vides. Obligation de les supprimer manuellement pour pouvoir les
triées ensuite ! De plus je suis obliger de faire un copier coller de la
macro en x exemplaire ( en fonction du nombre de feuille) pour recommencer
l'opération. Et changer à la mains la valeur de la cellule où le copier
coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un
bout
Voici une macro qui: ->efface les données de la feuille 1 (que je suppose être la feuille récapitulative) ->copie la ligne 7 (que je suppose être les entêtes de colonnes) de la feuille 2 sur la feuille 1 ->copie la plage des données des feuilles 2 au nombre total de feuilles du classeur sur la première feuille ->la plage copiée commence à partir de la ligne 8 jusqu'à la dernière ligne contenant des données (colonnes A à F). -- Sub CopieFeuilles() Dim l As Long Dim f As Integer Dim Plage As Range Dim Lignes As Long Sheets(1).Cells.Clear Sheets(2).Range("A7:F7").Copy _ Destination:=Sheets(1).Range("A1") l = 2 For f = 2 To Sheets.Count If Application.CountA(Sheets(f).Range("A8"). _ CurrentRegion) <> 0 Then With Sheets(f) Lignes = .Range("A:A").Find("*", , , , , xlPrevious).Row Set Plage = .Range(.Cells(8, "A"), .Cells(Lignes, "F")) End With Plage.Copy Destination:=Sheets(1).Cells(l, "A") l = Sheet(1).Range("A:A").Find("*", , , , , xlPrevious).Row + 1 End If Next f End Sub --
Lydya
"Leonweb73" a écrit dans le message de news:bnaj20$fs0$
Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel. J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles figure un tableau avec les noms de champs sur la premiere ligne. Ensuite la
longueur des tableau varie en fonction des feuilles (59 lignes, 235 lignes...). Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des données réparties sur toutes les feuilles sur un seul tableau situé sur une feuille.
MA méthode pour l'instant est la suivante. Je crée une macro qui fait un copier-coller du tableau de la premiere feuille et la colle sur la "feuil1".
Le probleme et que je suis obligé de prendre large pour être sur de ne pas oublié des enregistrements donc le résultat final est un tableau récap avec
des ligne vides. Obligation de les supprimer manuellement pour pouvoir les triées ensuite ! De plus je suis obliger de faire un copier coller de la macro en x exemplaire ( en fonction du nombre de feuille) pour recommencer l'opération. Et changer à la mains la valeur de la cellule où le copier coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un bout
********************************************** MOUNTAIN BIKING IS NOT A CRIME **********************************************
Frédéric Sigonneau
Bonjour,
Essaye cette macro, à recopier dans un module standard de ton classeur et à affecter à un bouton de barre d'outils (elle suppose qu'aucune ligne sur une autre colonne que A dans tes feuilles ne contient de données après la dernière cellule occupée en colonne A) :
Sub RecopieTout() Dim Li&, Derli&, LiCopie&
Application.ScreenUpdating = False Sheets.Add(before:=Sheets(1)).Name = "Recap" 'recopie de la ligne d'en-têtes Sheets("Recap").Rows("1:1").Value = Sheets(2).Rows("1:1").Value
For i = 2 To Sheets.Count With Sheets(i) .Activate Derli = .Cells(Rows.Count, "A").End(xlUp).Row .Rows("2:" & Derli).Copy End With With Sheets("Recap") .Select LiCopie = .Cells(Rows.Count, "A").End(xlUp).Row + 1 .Range("A" & LiCopie).Select .Paste End With Next i Application.CutCopyMode = False Range("A1").Select End Sub
ou, sans recopie des éventuelles mises en forme des données :
Sub RecopieDonnees() Dim DerLi&, LiCopie&, DerLiCopie&
Sheets.Add(before:=Sheets(1)).Name = "Recap" 'recopie de la ligne d'en-têtes Sheets("Recap").Rows("1:1").Value = Sheets(2).Rows("1:1").Value 'recopie du contenu de chaque feuille For i = 2 To Sheets.Count DerLi = Sheets(i).Cells(Rows.Count, "A").End(xlUp).Row LiCopie = Sheets("Recap").Cells(Rows.Count, "A").End(xlUp).Row + 1 DerLiCopie = LiCopie + DerLi - 2 Sheets("Recap").Rows(LiCopie & ":" & DerLiCopie).Value = _ Sheets(i).Rows("2:" & DerLi).Value Next i Range("A1").Select End Sub
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel. J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles figure un tableau avec les noms de champs sur la premiere ligne. Ensuite la longueur des tableau varie en fonction des feuilles (59 lignes, 235 lignes...). Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des données réparties sur toutes les feuilles sur un seul tableau situé sur une feuille. MA méthode pour l'instant est la suivante. Je crée une macro qui fait un copier-coller du tableau de la premiere feuille et la colle sur la "feuil1". Le probleme et que je suis obligé de prendre large pour être sur de ne pas oublié des enregistrements donc le résultat final est un tableau récap avec des ligne vides. Obligation de les supprimer manuellement pour pouvoir les triées ensuite ! De plus je suis obliger de faire un copier coller de la macro en x exemplaire ( en fonction du nombre de feuille) pour recommencer l'opération. Et changer à la mains la valeur de la cellule où le copier coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un bout de code ou macro pour faire le maximum en auto.
********************************************** MOUNTAIN BIKING IS NOT A CRIME **********************************************
Bonjour,
Essaye cette macro, à recopier dans un module standard de ton classeur et à
affecter à un bouton de barre d'outils (elle suppose qu'aucune ligne sur une
autre colonne que A dans tes feuilles ne contient de données après la dernière
cellule occupée en colonne A) :
Sub RecopieTout()
Dim Li&, Derli&, LiCopie&
Application.ScreenUpdating = False
Sheets.Add(before:=Sheets(1)).Name = "Recap"
'recopie de la ligne d'en-têtes
Sheets("Recap").Rows("1:1").Value = Sheets(2).Rows("1:1").Value
For i = 2 To Sheets.Count
With Sheets(i)
.Activate
Derli = .Cells(Rows.Count, "A").End(xlUp).Row
.Rows("2:" & Derli).Copy
End With
With Sheets("Recap")
.Select
LiCopie = .Cells(Rows.Count, "A").End(xlUp).Row + 1
.Range("A" & LiCopie).Select
.Paste
End With
Next i
Application.CutCopyMode = False
Range("A1").Select
End Sub
ou, sans recopie des éventuelles mises en forme des données :
Sub RecopieDonnees()
Dim DerLi&, LiCopie&, DerLiCopie&
Sheets.Add(before:=Sheets(1)).Name = "Recap"
'recopie de la ligne d'en-têtes
Sheets("Recap").Rows("1:1").Value = Sheets(2).Rows("1:1").Value
'recopie du contenu de chaque feuille
For i = 2 To Sheets.Count
DerLi = Sheets(i).Cells(Rows.Count, "A").End(xlUp).Row
LiCopie = Sheets("Recap").Cells(Rows.Count, "A").End(xlUp).Row + 1
DerLiCopie = LiCopie + DerLi - 2
Sheets("Recap").Rows(LiCopie & ":" & DerLiCopie).Value = _
Sheets(i).Rows("2:" & DerLi).Value
Next i
Range("A1").Select
End Sub
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel.
J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles
figure un tableau avec les noms de champs sur la premiere ligne. Ensuite la
longueur des tableau varie en fonction des feuilles (59 lignes, 235
lignes...).
Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des données
réparties sur toutes les feuilles sur un seul tableau situé sur une feuille.
MA méthode pour l'instant est la suivante. Je crée une macro qui fait un
copier-coller du tableau de la premiere feuille et la colle sur la "feuil1".
Le probleme et que je suis obligé de prendre large pour être sur de ne pas
oublié des enregistrements donc le résultat final est un tableau récap avec
des ligne vides. Obligation de les supprimer manuellement pour pouvoir les
triées ensuite ! De plus je suis obliger de faire un copier coller de la
macro en x exemplaire ( en fonction du nombre de feuille) pour recommencer
l'opération. Et changer à la mains la valeur de la cellule où le copier
coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un bout
de code ou macro pour faire le maximum en auto.
Essaye cette macro, à recopier dans un module standard de ton classeur et à affecter à un bouton de barre d'outils (elle suppose qu'aucune ligne sur une autre colonne que A dans tes feuilles ne contient de données après la dernière cellule occupée en colonne A) :
Sub RecopieTout() Dim Li&, Derli&, LiCopie&
Application.ScreenUpdating = False Sheets.Add(before:=Sheets(1)).Name = "Recap" 'recopie de la ligne d'en-têtes Sheets("Recap").Rows("1:1").Value = Sheets(2).Rows("1:1").Value
For i = 2 To Sheets.Count With Sheets(i) .Activate Derli = .Cells(Rows.Count, "A").End(xlUp).Row .Rows("2:" & Derli).Copy End With With Sheets("Recap") .Select LiCopie = .Cells(Rows.Count, "A").End(xlUp).Row + 1 .Range("A" & LiCopie).Select .Paste End With Next i Application.CutCopyMode = False Range("A1").Select End Sub
ou, sans recopie des éventuelles mises en forme des données :
Sub RecopieDonnees() Dim DerLi&, LiCopie&, DerLiCopie&
Sheets.Add(before:=Sheets(1)).Name = "Recap" 'recopie de la ligne d'en-têtes Sheets("Recap").Rows("1:1").Value = Sheets(2).Rows("1:1").Value 'recopie du contenu de chaque feuille For i = 2 To Sheets.Count DerLi = Sheets(i).Cells(Rows.Count, "A").End(xlUp).Row LiCopie = Sheets("Recap").Cells(Rows.Count, "A").End(xlUp).Row + 1 DerLiCopie = LiCopie + DerLi - 2 Sheets("Recap").Rows(LiCopie & ":" & DerLiCopie).Value = _ Sheets(i).Rows("2:" & DerLi).Value Next i Range("A1").Select End Sub
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel. J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles figure un tableau avec les noms de champs sur la premiere ligne. Ensuite la longueur des tableau varie en fonction des feuilles (59 lignes, 235 lignes...). Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des données réparties sur toutes les feuilles sur un seul tableau situé sur une feuille. MA méthode pour l'instant est la suivante. Je crée une macro qui fait un copier-coller du tableau de la premiere feuille et la colle sur la "feuil1". Le probleme et que je suis obligé de prendre large pour être sur de ne pas oublié des enregistrements donc le résultat final est un tableau récap avec des ligne vides. Obligation de les supprimer manuellement pour pouvoir les triées ensuite ! De plus je suis obliger de faire un copier coller de la macro en x exemplaire ( en fonction du nombre de feuille) pour recommencer l'opération. Et changer à la mains la valeur de la cellule où le copier coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un bout de code ou macro pour faire le maximum en auto.
********************************************** MOUNTAIN BIKING IS NOT A CRIME **********************************************
Leonweb73
Merci beaucoup à tous !
-- (¯`·._--={ L E O N W E B 7 3 }=--_.·`¯)
********************************************** MOUNTAIN BIKING IS NOT A CRIME ********************************************** "Lydya" a écrit dans le message de news:
Bonjour,
Voici une macro qui: ->efface les données de la feuille 1 (que je suppose être la feuille récapitulative) ->copie la ligne 7 (que je suppose être les entêtes de colonnes) de la feuille 2 sur la feuille 1 ->copie la plage des données des feuilles 2 au nombre total de feuilles du classeur sur la première feuille ->la plage copiée commence à partir de la ligne 8 jusqu'à la dernière ligne
contenant des données (colonnes A à F). -- Sub CopieFeuilles() Dim l As Long Dim f As Integer Dim Plage As Range Dim Lignes As Long Sheets(1).Cells.Clear Sheets(2).Range("A7:F7").Copy _ Destination:=Sheets(1).Range("A1") l = 2 For f = 2 To Sheets.Count If Application.CountA(Sheets(f).Range("A8"). _ CurrentRegion) <> 0 Then With Sheets(f) Lignes = .Range("A:A").Find("*", , , , , xlPrevious).Row Set Plage = .Range(.Cells(8, "A"), .Cells(Lignes, "F")) End With Plage.Copy Destination:=Sheets(1).Cells(l, "A") l = Sheet(1).Range("A:A").Find("*", , , , , xlPrevious).Row + 1 End If Next f End Sub --
Lydya
"Leonweb73" a écrit dans le message de news:bnaj20$fs0$
Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel. J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles figure un tableau avec les noms de champs sur la premiere ligne. Ensuite la
longueur des tableau varie en fonction des feuilles (59 lignes, 235 lignes...). Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des données
réparties sur toutes les feuilles sur un seul tableau situé sur une feuille.
MA méthode pour l'instant est la suivante. Je crée une macro qui fait un copier-coller du tableau de la premiere feuille et la colle sur la "feuil1".
Le probleme et que je suis obligé de prendre large pour être sur de ne pas
oublié des enregistrements donc le résultat final est un tableau récap avec
des ligne vides. Obligation de les supprimer manuellement pour pouvoir les
triées ensuite ! De plus je suis obliger de faire un copier coller de la macro en x exemplaire ( en fonction du nombre de feuille) pour recommencer
l'opération. Et changer à la mains la valeur de la cellule où le copier coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un bout
********************************************** MOUNTAIN BIKING IS NOT A CRIME **********************************************
Merci beaucoup à tous !
--
(¯`·._--={ L E O N W E B 7 3 }=--_.·`¯)
**********************************************
MOUNTAIN BIKING IS NOT A CRIME
**********************************************
"Lydya" <prenomfirstname@libertysurf.fr> a écrit dans le message de
news:u6RmyeimDHA.744@tk2msftngp13.phx.gbl...
Bonjour,
Voici une macro qui:
->efface les données de la feuille 1 (que je suppose être la feuille
récapitulative)
->copie la ligne 7 (que je suppose être les entêtes de colonnes) de la
feuille 2 sur la feuille 1
->copie la plage des données des feuilles 2 au nombre total de feuilles du
classeur sur la première feuille
->la plage copiée commence à partir de la ligne 8 jusqu'à la dernière
ligne
contenant des données (colonnes A à F).
--
Sub CopieFeuilles()
Dim l As Long
Dim f As Integer
Dim Plage As Range
Dim Lignes As Long
Sheets(1).Cells.Clear
Sheets(2).Range("A7:F7").Copy _
Destination:=Sheets(1).Range("A1")
l = 2
For f = 2 To Sheets.Count
If Application.CountA(Sheets(f).Range("A8"). _
CurrentRegion) <> 0 Then
With Sheets(f)
Lignes = .Range("A:A").Find("*", , , , , xlPrevious).Row
Set Plage = .Range(.Cells(8, "A"), .Cells(Lignes, "F"))
End With
Plage.Copy Destination:=Sheets(1).Cells(l, "A")
l = Sheet(1).Range("A:A").Find("*", , , , , xlPrevious).Row + 1
End If
Next f
End Sub
--
Lydya
"Leonweb73" <leonweb73@hotmail.com> a écrit dans le message de
news:bnaj20$fs0$1@news-reader3.wanadoo.fr...
Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel.
J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles
figure un tableau avec les noms de champs sur la premiere ligne. Ensuite
la
longueur des tableau varie en fonction des feuilles (59 lignes, 235
lignes...).
Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des
données
réparties sur toutes les feuilles sur un seul tableau situé sur une
feuille.
MA méthode pour l'instant est la suivante. Je crée une macro qui fait un
copier-coller du tableau de la premiere feuille et la colle sur la
"feuil1".
Le probleme et que je suis obligé de prendre large pour être sur de ne
pas
oublié des enregistrements donc le résultat final est un tableau récap
avec
des ligne vides. Obligation de les supprimer manuellement pour pouvoir
les
triées ensuite ! De plus je suis obliger de faire un copier coller de la
macro en x exemplaire ( en fonction du nombre de feuille) pour
recommencer
l'opération. Et changer à la mains la valeur de la cellule où le copier
coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un
bout
********************************************** MOUNTAIN BIKING IS NOT A CRIME ********************************************** "Lydya" a écrit dans le message de news:
Bonjour,
Voici une macro qui: ->efface les données de la feuille 1 (que je suppose être la feuille récapitulative) ->copie la ligne 7 (que je suppose être les entêtes de colonnes) de la feuille 2 sur la feuille 1 ->copie la plage des données des feuilles 2 au nombre total de feuilles du classeur sur la première feuille ->la plage copiée commence à partir de la ligne 8 jusqu'à la dernière ligne
contenant des données (colonnes A à F). -- Sub CopieFeuilles() Dim l As Long Dim f As Integer Dim Plage As Range Dim Lignes As Long Sheets(1).Cells.Clear Sheets(2).Range("A7:F7").Copy _ Destination:=Sheets(1).Range("A1") l = 2 For f = 2 To Sheets.Count If Application.CountA(Sheets(f).Range("A8"). _ CurrentRegion) <> 0 Then With Sheets(f) Lignes = .Range("A:A").Find("*", , , , , xlPrevious).Row Set Plage = .Range(.Cells(8, "A"), .Cells(Lignes, "F")) End With Plage.Copy Destination:=Sheets(1).Cells(l, "A") l = Sheet(1).Range("A:A").Find("*", , , , , xlPrevious).Row + 1 End If Next f End Sub --
Lydya
"Leonweb73" a écrit dans le message de news:bnaj20$fs0$
Salut, j'ai besoin de faire des copier-coller de tableaux sous Excel. J'ai un nombre x de feuille nommées toto1, toto2... sur chaques feuilles figure un tableau avec les noms de champs sur la premiere ligne. Ensuite la
longueur des tableau varie en fonction des feuilles (59 lignes, 235 lignes...). Pour retrailler tout cela j'ai besoin de regrouper l'ensemble des données
réparties sur toutes les feuilles sur un seul tableau situé sur une feuille.
MA méthode pour l'instant est la suivante. Je crée une macro qui fait un copier-coller du tableau de la premiere feuille et la colle sur la "feuil1".
Le probleme et que je suis obligé de prendre large pour être sur de ne pas
oublié des enregistrements donc le résultat final est un tableau récap avec
des ligne vides. Obligation de les supprimer manuellement pour pouvoir les
triées ensuite ! De plus je suis obliger de faire un copier coller de la macro en x exemplaire ( en fonction du nombre de feuille) pour recommencer
l'opération. Et changer à la mains la valeur de la cellule où le copier coller doit se faire...
AU SECOURS. Si quelqu'un comprends mon explication et peux me donner un bout