copier des lignes suivant conditions

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

  • Chapelle modèle V2.1.xlsm
    182.6 KB · Affichages: 39

Staple1600

XLDnaute Barbatruc
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 ?
 

stoky

XLDnaute Junior
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.
 

Staple1600

XLDnaute Barbatruc
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 ?
 

stoky

XLDnaute Junior
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!) :)
 

Staple1600

XLDnaute Barbatruc
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:

stoky

XLDnaute Junior
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 !
 

stoky

XLDnaute Junior
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
 

stoky

XLDnaute Junior
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.
 

Discussions similaires

Statistiques des forums

Discussions
312 327
Messages
2 087 314
Membres
103 515
dernier inscrit
Cherbil12345