Copier-coller une plage unique de plusieurs onglet vers une feuille unique
5 réponses
omeunier
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon problème.
Voici la situation:
J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37 de chaque onglet de la liste pour coller les plages les unes à la suite des autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
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
isabelle
bonjour,
Sub Macro1() Dim x As Integer, c x = Sheets("sommaire").Cells(.Rows.Count, 2).End(xlUp).Row For Each c In Sheets("sommaire").Range("B4:B" & x) lgn = lng + 1 Sheets("récapitulatif").Range("A1:F" & lgn) = Sheets(c).Range("AJ14:AO37") Next End Sub
puis supprimer les lignes vides
elle sont ou ces lignes vides ?
isabelle
Le 2015-05-20 07:38, omeunier a écrit :
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon problème.
Voici la situation: J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37 de chaque onglet de la liste pour coller les plages les unes à la suite des autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Merci de vos réponses !
bonjour,
Sub Macro1()
Dim x As Integer, c
x = Sheets("sommaire").Cells(.Rows.Count, 2).End(xlUp).Row
For Each c In Sheets("sommaire").Range("B4:B" & x)
lgn = lng + 1
Sheets("récapitulatif").Range("A1:F" & lgn) = Sheets(c).Range("AJ14:AO37")
Next
End Sub
puis supprimer les lignes vides
elle sont ou ces lignes vides ?
isabelle
Le 2015-05-20 07:38, omeunier a écrit :
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon
problème.
Voici la situation:
J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir
d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la
dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37
de chaque onglet de la liste pour coller les plages les unes à la suite des
autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Sub Macro1() Dim x As Integer, c x = Sheets("sommaire").Cells(.Rows.Count, 2).End(xlUp).Row For Each c In Sheets("sommaire").Range("B4:B" & x) lgn = lng + 1 Sheets("récapitulatif").Range("A1:F" & lgn) = Sheets(c).Range("AJ14:AO37") Next End Sub
puis supprimer les lignes vides
elle sont ou ces lignes vides ?
isabelle
Le 2015-05-20 07:38, omeunier a écrit :
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon problème.
Voici la situation: J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37 de chaque onglet de la liste pour coller les plages les unes à la suite des autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Merci de vos réponses !
Jacky
Bonjour,
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37 de chaque onglet
Ceci peut être '------------------------ Sub Recap() Dim derlg As Long, i As Long Sheets("récapitulatif").Cells.Clear Application.ScreenUpdating = False With Sheets("sommaire") '.Range("B4:B" & Cells(Rows.Count, 2).End(xlUp).Row).Address For i = 4 To .Cells(.Rows.Count, 2).End(xlUp).Row Sheets(.Cells(i, 2).Value).Range("AJ14:AO37").Copy With Sheets("récapitulatif") derlg = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 .Range("a" & derlg).PasteSpecial Paste:=xlPasteValues End With Next End With Sheets("récapitulatif").Activate Application.ScreenUpdating = True End Sub '--------------------------- Voir ici http://cjoint.com/?EEuqVo3qoOg -- Salutations JJ
"omeunier" a écrit dans le message de news:
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon problème.
Voici la situation: J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la dernière ligne non vide)
de la liste pour coller les plages les unes à la suite des
autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Merci de vos réponses !
Bonjour,
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37
de chaque onglet
Ceci peut être
'------------------------
Sub Recap()
Dim derlg As Long, i As Long
Sheets("récapitulatif").Cells.Clear
Application.ScreenUpdating = False
With Sheets("sommaire") '.Range("B4:B" & Cells(Rows.Count, 2).End(xlUp).Row).Address
For i = 4 To .Cells(.Rows.Count, 2).End(xlUp).Row
Sheets(.Cells(i, 2).Value).Range("AJ14:AO37").Copy
With Sheets("récapitulatif")
derlg = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Range("a" & derlg).PasteSpecial Paste:=xlPasteValues
End With
Next
End With
Sheets("récapitulatif").Activate
Application.ScreenUpdating = True
End Sub
'---------------------------
Voir ici
http://cjoint.com/?EEuqVo3qoOg
--
Salutations
JJ
"omeunier" <nospam_olivier.meunier@gmx.fr.invalid> a écrit dans le message de news:
7cydnSX2adXP78HInZ2dnUVZ572dnZ2d@giganews.com...
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon
problème.
Voici la situation:
J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir
d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la
dernière ligne non vide)
de la liste pour coller les plages les unes à la suite des
autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37 de chaque onglet
Ceci peut être '------------------------ Sub Recap() Dim derlg As Long, i As Long Sheets("récapitulatif").Cells.Clear Application.ScreenUpdating = False With Sheets("sommaire") '.Range("B4:B" & Cells(Rows.Count, 2).End(xlUp).Row).Address For i = 4 To .Cells(.Rows.Count, 2).End(xlUp).Row Sheets(.Cells(i, 2).Value).Range("AJ14:AO37").Copy With Sheets("récapitulatif") derlg = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 .Range("a" & derlg).PasteSpecial Paste:=xlPasteValues End With Next End With Sheets("récapitulatif").Activate Application.ScreenUpdating = True End Sub '--------------------------- Voir ici http://cjoint.com/?EEuqVo3qoOg -- Salutations JJ
"omeunier" a écrit dans le message de news:
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon problème.
Voici la situation: J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la dernière ligne non vide)
de la liste pour coller les plages les unes à la suite des
autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Merci de vos réponses !
isabelle
correction:
Sub Macro1() Dim x As Integer, n1 As Integer, n2 As Integer, c Sheets("récapitulatif").ClearContents With Sheets("sommaire") x = .Cells(.Rows.Count, 2).End(xlUp).Row End With For Each c In Sheets("sommaire").Range("B4:B" & x) n1 = n2 + 1 n2 = n1 + 23 Sheets("récapitulatif").Range("A" & n1 & ":F" & n2).Value = Sheets(c.Value).Range("AJ14:AO37").Value Next End Sub
isabelle
Le 2015-05-20 07:38, omeunier a écrit :
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon problème.
Voici la situation: J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37 de chaque onglet de la liste pour coller les plages les unes à la suite des autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Merci de vos réponses !
correction:
Sub Macro1()
Dim x As Integer, n1 As Integer, n2 As Integer, c
Sheets("récapitulatif").ClearContents
With Sheets("sommaire")
x = .Cells(.Rows.Count, 2).End(xlUp).Row
End With
For Each c In Sheets("sommaire").Range("B4:B" & x)
n1 = n2 + 1
n2 = n1 + 23
Sheets("récapitulatif").Range("A" & n1 & ":F" & n2).Value =
Sheets(c.Value).Range("AJ14:AO37").Value
Next
End Sub
isabelle
Le 2015-05-20 07:38, omeunier a écrit :
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon
problème.
Voici la situation:
J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir
d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la
dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37
de chaque onglet de la liste pour coller les plages les unes à la suite des
autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Sub Macro1() Dim x As Integer, n1 As Integer, n2 As Integer, c Sheets("récapitulatif").ClearContents With Sheets("sommaire") x = .Cells(.Rows.Count, 2).End(xlUp).Row End With For Each c In Sheets("sommaire").Range("B4:B" & x) n1 = n2 + 1 n2 = n1 + 23 Sheets("récapitulatif").Range("A" & n1 & ":F" & n2).Value = Sheets(c.Value).Range("AJ14:AO37").Value Next End Sub
isabelle
Le 2015-05-20 07:38, omeunier a écrit :
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon problème.
Voici la situation: J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37 de chaque onglet de la liste pour coller les plages les unes à la suite des autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Merci de vos réponses !
isabelle
jamais 2 sans 3
il faut remplacer Sheets("récapitulatif").ClearContents par Sheets("récapitulatif").Cells.ClearContents
isabelle
Le 2015-05-20 11:34, isabelle a écrit :
correction:
Sub Macro1() Dim x As Integer, n1 As Integer, n2 As Integer, c Sheets("récapitulatif").ClearContents With Sheets("sommaire") x = .Cells(.Rows.Count, 2).End(xlUp).Row End With For Each c In Sheets("sommaire").Range("B4:B" & x) n1 = n2 + 1 n2 = n1 + 23 Sheets("récapitulatif").Range("A" & n1 & ":F" & n2).Value > Sheets(c.Value).Range("AJ14:AO37").Value Next End Sub
isabelle
Le 2015-05-20 07:38, omeunier a écrit :
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon problème.
Voici la situation: J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37 de chaque onglet de la liste pour coller les plages les unes à la suite des autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Merci de vos réponses !
jamais 2 sans 3
il faut remplacer
Sheets("récapitulatif").ClearContents
par
Sheets("récapitulatif").Cells.ClearContents
isabelle
Le 2015-05-20 11:34, isabelle a écrit :
correction:
Sub Macro1()
Dim x As Integer, n1 As Integer, n2 As Integer, c
Sheets("récapitulatif").ClearContents
With Sheets("sommaire")
x = .Cells(.Rows.Count, 2).End(xlUp).Row
End With
For Each c In Sheets("sommaire").Range("B4:B" & x)
n1 = n2 + 1
n2 = n1 + 23
Sheets("récapitulatif").Range("A" & n1 & ":F" & n2).Value > Sheets(c.Value).Range("AJ14:AO37").Value
Next
End Sub
isabelle
Le 2015-05-20 07:38, omeunier a écrit :
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon
problème.
Voici la situation:
J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir
d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la
dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37
de chaque onglet de la liste pour coller les plages les unes à la suite des
autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
il faut remplacer Sheets("récapitulatif").ClearContents par Sheets("récapitulatif").Cells.ClearContents
isabelle
Le 2015-05-20 11:34, isabelle a écrit :
correction:
Sub Macro1() Dim x As Integer, n1 As Integer, n2 As Integer, c Sheets("récapitulatif").ClearContents With Sheets("sommaire") x = .Cells(.Rows.Count, 2).End(xlUp).Row End With For Each c In Sheets("sommaire").Range("B4:B" & x) n1 = n2 + 1 n2 = n1 + 23 Sheets("récapitulatif").Range("A" & n1 & ":F" & n2).Value > Sheets(c.Value).Range("AJ14:AO37").Value Next End Sub
isabelle
Le 2015-05-20 07:38, omeunier a écrit :
Bonjour,
Après plusieurs recherches internet je ne trouve pas de solution à mon problème.
Voici la situation: J'ai un fichier excel qui contient plusieurs onglets (crées par macro à partir d'une liste qui se trouve dans l'onglet "sommaire" plage B4:Bx -x signifiant la dernière ligne non vide)
Je souhaite (par macro) copier les valeurs(pas les formules) la plage AJ14:AO37 de chaque onglet de la liste pour coller les plages les unes à la suite des autres dans l'onglet "récapitulatif" puis supprimer les lignes vides.
Merci de vos réponses !
isabelle
si tu as besoin de connaitre le nom de l'onglet d’où proviennent les données,
Sub Macro1() Dim x As Integer, n1 As Integer, n2 As Integer, c Sheets("récapitulatif").Cells.ClearContents With Sheets("sommaire") x = .Cells(.Rows.Count, 2).End(xlUp).Row End With For Each c In Sheets("sommaire").Range("B4:B" & x) n1 = n2 + 1 n2 = n1 + 23 Sheets("récapitulatif").Range("A" & n1) = c.Value Sheets("récapitulatif").Range("B" & n1 & ":G" & n2).Value = Sheets(c.Value).Range("AJ14:AO37").Value Next End Sub
isabelle
si tu as besoin de connaitre le nom de l'onglet d’où proviennent les données,
Sub Macro1()
Dim x As Integer, n1 As Integer, n2 As Integer, c
Sheets("récapitulatif").Cells.ClearContents
With Sheets("sommaire")
x = .Cells(.Rows.Count, 2).End(xlUp).Row
End With
For Each c In Sheets("sommaire").Range("B4:B" & x)
n1 = n2 + 1
n2 = n1 + 23
Sheets("récapitulatif").Range("A" & n1) = c.Value
Sheets("récapitulatif").Range("B" & n1 & ":G" & n2).Value =
Sheets(c.Value).Range("AJ14:AO37").Value
Next
End Sub
si tu as besoin de connaitre le nom de l'onglet d’où proviennent les données,
Sub Macro1() Dim x As Integer, n1 As Integer, n2 As Integer, c Sheets("récapitulatif").Cells.ClearContents With Sheets("sommaire") x = .Cells(.Rows.Count, 2).End(xlUp).Row End With For Each c In Sheets("sommaire").Range("B4:B" & x) n1 = n2 + 1 n2 = n1 + 23 Sheets("récapitulatif").Range("A" & n1) = c.Value Sheets("récapitulatif").Range("B" & n1 & ":G" & n2).Value = Sheets(c.Value).Range("AJ14:AO37").Value Next End Sub