copier des lignes suivant conditions

  • Initiateur de la discussion Initiateur de la discussion stoky
  • Date de début Date de début

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 !

stoky

XLDnaute Junior
Bonjour,
tout d'abord merci de me lire et d'éventuellement m'aider.
Dans le fichier attaché ci-joint, je voudrais réaliser une macro dans chaque feuille reprenant les mois. Si on m'explique pour une, je le ferai pour les autres.
Voici le descriptif de la macro souhaitée :
Copier dans une autre feuille les lignes du tableau (10 pour janvier, 20 pour février, etc) dans la feuille Certificat si celles-ci ont le texte cc dans la colonne G. Il me faudrait aussi garder les titres des collens mais ceci ne devrait pas être un problème si on copie à partir de la ligne 10 comme je le souhaite.
Afin de me faire mieux comprendre, je joins mon fichier en cours d'élaboration.
Mon but est de pouvoir faire du publipostage à partir de cette feuille certificat en incorporant les champs dans un texte qui m'est imposé et que j'ai en Word.
Merci de me répondre via ce poste ou mieux, par mail à estoquart@gmail.com

Déjà un grand merci à celui ou ceux qui pourront m'aider. C'est déjà avec votre aide que j'en suis arrivé là où je suis.
 

Pièces jointes

Bonsoir à tous

stoky
Tes tableaux sur tes feuilles mensuelles ne sont pas identiques au niveau de leur structure
Sur la feuille Janv, on a bien une colonne G avec une formule qui renvoie bien cc selon les cas.
Mais cette colonne G n'existe pas sur les autres feuilles mensuelles.

Tu peux remanier ton classeur pour que tes tableaux aient la même structure, stp ?

PS: Tu es certain qu'il n'y aucune données confidentielles dans ton classeur ?
 
Bonjour et merci, oui les autres feulles n'ont pas la structure de janvier car je n'ai mis la colonne G que dans janvier afin de chercher à écrire ma fonction. je la recopierai pour toutes les autres feuilles et mettre tout à niveau dès que ma macro tournara pour janvier.
Non, il n'y a aucune donnée confidentielle dans le fichier, juste des codes perso pour des travaux de mécanicien dentiste.
 
Re

[aparté]
Donc ce qui est inscrit dans la zone de texte sur la feuille facture n'est pas confidentiel?
Tu ne crains pas le spam en diffusant ton adresse hotmail?
[/aparté]

Suggestion:
Ce serait plus simple si tu renommais tes feuilles mensuelles en respectant les abréviations des noms des mois dans Excel.

Par exemple, avec le bonnes abréviations, cette macro fonctionnerait
VB:
Sub a()
Dim i%, test$
For i = 1 To 12
With Sheets(StrConv(Format(i * 30, "mmm"), vbProperCase))
'test pour voir si on identifie bien les 12 tableaux
test = test & .ListObjects("Tableau" & i * 10).Name & Space(9) & .ListObjects("Tableau" & i * 10).DataBodyRange.Address & vbCrLf
End With
Next
MsgBox test
End Sub

Si il faut copier les tableaux des 12 feuilles filtrés sur la colonne G avec le critère cc, il faut bien que les 12 feuilles mensuelles aient une colonne G avec la formule, non ?
 
Tu as tout à fait raison mais tu as pu voir que pour les feuilles des mois, j'ai chaque fois recopié la fonction remise à jour car je n'ai pas su faire une macro qui générale qui s'adapterait automatiquement à la feuille active. Je pensais donc faire la m^me chose pour ce que je demande ici. Il y a juste que je fais cette feuille là le temps de faire mon publipostage puis j'en affaceari les données à moins qu'une macro qui ajoute au fur et à mesure ne soit possible sans faire de doublons. mais ça, je n'osais vous le demander et je comptais recopier la macro dans chacune des feuilles.
Pour les abréviations des mois, je vais le faire dès que je sais exactement ce qu'il faut mettre (ça je crois y parvenir seul!) 🙂
 
Re à tous

Donc tu confirmes que cexxic.chapelle@hotmail.com n'est pas confidentiel ?
Ni les autres données sur la feuille Facture ?

Exemple de macro de recopie pour janvier
VB:
Sub Recopie_Janvier()
With Sheets("Janv")
    .AutoFilterMode = False
    .ListObjects("Tableau10").Range.AutoFilter Field:=7, Criteria1:="cc"
    .ListObjects("Tableau10").HeaderRowRange.Copy Sheets("Certificat").Cells(1, 1)
    .ListObjects("Tableau10").DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
    Sheets("Certificat").Cells(Rows.Count, 1).End(xlUp)(2).PasteSpecial xlAll
    Application.CutCopyMode = False
    .ShowAllData
End With
End Sub
Pour les abréviations des noms des mois, voir cette macro en guise de pense-bête
VB:
Sub ABRV_Mois()
Dim i%
For i = 1 To 12
ABRV = ABRV & Format(i * 30, "mmmm") & "-> " & StrConv(Format(i * 30, "mmm"), vbProperCase) & vbCrLf
Next
MsgBox ABRV
End Sub
 
Dernière édition:
Bo jour, je suis de retour un tout grand merci pour vos réponses. j'ai pu bien avancer dans mon travail mais je ne m'explique pas pour quoi quand je lance 2 fois de suite la macro

Private Sub CertifConf_Click()
Recopie_Janvier

End Sub
Sub Recopie_Janvier()
With Sheets("Janv")
.AutoFilterMode = False
.ListObjects("Tableau10").Range.AutoFilter Field:=7, Criteria1:="cc"
.ListObjects("Tableau10").HeaderRowRange.Copy Sheets("Certificat").Cells(1, 1)
.ListObjects("Tableau10").DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
Sheets("Certificat").Cells(Rows.Count, 1).End(xlUp)(2).PasteSpecial xlAll
Application.CutCopyMode = False
.ShowAllData
End With
End Sub

le seconde fois elle bug sur la ligne .ShowAllDAta et du coup ne me montre plus que les données triées sur la feuille janvier !
 
je pense avoir trouvé en faisant ceci :

Sub Recopie_Janvier()

With Sheets("Janv")
.AutoFilterMode = False
.ListObjects("Tableau10").Range.AutoFilter Field:=7, Criteria1:="cc"
.ListObjects("Tableau10").HeaderRowRange.Copy Sheets("Certificat").Cells(1, 1)
.ListObjects("Tableau10").DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
Sheets("Certificat").Cells(Rows.Count, 1).End(xlUp)(2).PasteSpecial xlAll
Application.CutCopyMode = False
.AutoFilterMode = False
'.ShowAllData
.ListObjects("Tableau10").Range.AutoFilter Field:=7

End With
End Sub

mais je ne sais toujours pas potrquoi leShowAllData ne fonctionnait pas deux fois. pour ma gouverne, je veux bien une explication si elle existe.
Encore une fois merci au forum pour ce que vosu avez fait pour moi.
Bon dimanche
 
Bonjour à tous


J'attends ta réponse à ces deux questions avant de poursuivre 😉

PS: Tu ne joins pas un nouveau classeur avec les noms des mois correctement abrégés ?

Je confirme (je l'avais fait de suite mais visiblement la réponse n'est pas passée) aucune des données duu fichier n'est confidentielle et elles seront de tooutes façons modifiées une fois le fichier fin prêt.
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
622
Retour