Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Macro copier coller lignes tableaux non vides dans tableau de synthèse
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Re : Macro copier coller lignes tableaux non vides dans tableau de synthèse
Bonsoir Bast, bonsoir le forum,
Peut-être comme ça :
Code:
Sub Macro1()
Dim o As Object 'déclare la variable o (Onglet)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (Plage)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
Dim pli As Range 'déclare la variable pli (Plage en LIgne)
For Each o In Sheets 'boucle 1 : sour tous les onglets du classeur
If Not o.Name = "Synthese" Then 'condition 1 : si le nom de l'onglet est différent de "Synthese"
'définit la dernière ligne éditée dl de la colonne 1 (=A) de l'onglet o
dl = o.Cells(Application.Rows.Count, 1).End(xlUp).Row
Set pl = o.Range("A3:A" & dl) 'définit la plage pl
For Each cel In pl 'boucle 2 : sur toutes les cellules cel de la plage pl
Set pli = o.Range(cel, cel.Offset(0, 13)) 'définit la plage en ligne pli
'condition 2 : si le nombre de valeurs dans la plage pli est égal à 14
If Application.WorksheetFunction.CountA(pli) = 14 Then
'définit la cellule de destination dest
Set dest = Sheets("Synthese").Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
pli.Copy dest 'copie la plage pli et la colle dans dest
End If 'fin de la condition 2
Next cel 'prochaine cellule de la boucle 2
End If 'fin de la condition 1
Next o 'prochain onglet de la boucle 1
End Sub
Re : Macro copier coller lignes tableaux non vides dans tableau de synthèse
salut
Si... tu veux une synthèse même avec des mois "vides", une solution peut-être dans le fichier joint.
Dans la page de code de la feuille cible (Synthese) :
Code:
Sub Va()
Dim L As Long, F As Worksheet
Dim Li As Range, C As Range
L = 3
Rows("3:1000") = "" 'ou + Si... nécessaire
For Each F In Sheets
If F.Name <> Me.Name Then
For Each C In F.Range("A3", F.Cells(Rows.Count, 1).End(xlUp))
Set Li = C.Resize(1, 13)
If Application.CountA(Li) > 2 Then
Li.Copy Sheets("Synthese").Cells(L, 1)
L = L + 1
End If
Next
End If
Next
End Sub
Re : Macro copier coller lignes tableaux non vides dans tableau de synthèse
Bonjour à tous
Merci ROBERT, Merci SI pour ces deux codes qui marchent à merveille. Comment apprendre à codifier comme vous le faites ?
Sinon
1-comment je pourrais modifier ces codes de manière à préciser les onglets dans lesquelles je souhaite copier les lignes que je veux (mon fichier peux avoir plusieurs onglets)
et
2-dans chaque onglet comment copier uniquement la partie que je veux (dans ce nouveau cas la partie en jaune) à savoir les lignes différents de 0 ou non vides (c-a-d possédant une info)
Re : Macro copier coller lignes tableaux non vides dans tableau de synthèse
Bonjour le fil, bonjour le forum,
Désolé mais j'ai absolument pas compris ta manière de définir les lignes concernée... En pièce jointe une proposition avec une UserForm pour définir les onglets et une InputBox pour définir les lignes (il te suffit de cliquer glisser à l’extrême gauche là ou sont inscrits les numéros de ligne)...
Le fichier :
Re : Macro copier coller lignes tableaux non vides dans tableau de synthèse
Bonjour Robert, Bonjour le forum,
L'idée c que pour les onglets spécifiques Renault, Peugeot et Citroen, je copie colle en valeur les données chargées dans les parties jaunes non vides
Ainsi dans la macro préciser que ceci se fait uniquement pour les onglets Renault, Peugeot et Citroen et que le copier coller en valeur concerne les zones "range" en jaune
Re : Macro copier coller lignes tableaux non vides dans tableau de synthèse
Bonjour à tous
Merci Robert et Si pour vos réponses
Si.. un dernier point, ton programme commence bien mais je veux au final copier les parties en jaunes dans un seul onglet, l'onglet synthèse et non dans des onglets différents. Comment ajuster la macro pour ça ?
De plus pourquoi renommer les onglets à part , pourquoi ne pas les intégrer directement dans la macro principale ?
Re : Macro copier coller lignes tableaux non vides dans tableau de synthèse
salut(ous)
à tester (dans la page de code de la feuille Synthese)
Code:
Sub va()
Dim L As Long, F As Worksheet
Dim C As Range, LI As Range
L = 2
Rows("2:1000") = "" 'ou + Si... nécessaire
For Each F In Sheets
If F.Name = "Renault" Or F.Name = "Peugeot" Or F.Name = "Citroen" Then
For Each C In F.Range("A13", F.Cells(Rows.Count, 1).End(xlUp))
Set LI = C.Resize(1, 14)
If Application.CountIf(LI, 0) = 0 Then
Cells(L, 1).Resize(1, 14).Value = LI.Value
L = L + 1
End If
Next
End If
Next
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD