@Staple1600Bonjour le fil, le forum
1) Pour un publipostage, pas de cellules fusionnées dans la base de données.
2) Molière n'aurait pas pu écrire dans son Malade Imaginaire
"DEMANDE D'UN CERTEFICAT MEDICAL DETAILLE"
mais assurément ceci
DEMANDE D'UN CERTIFICAT MEDICAL DETAILLE
3) Il faut donc reformater ta base sur ce modèle:
Ligne d'entête
N° i. unique;Grade;Nom et Pr;Lieu de Travail;Cumul Préc.;CONGE_1;Date_C1;Motif_1;Decision_1; CONGE_2;Date_C2;Motif_2;Decision_2;CONGE_3;Date_C3;Motif_3;Decision_3
Une ligne égale un enregistrement
(clique sur l'image pour l'agrandir)
Regarde la pièce jointe 1005560
NB: Ton document Word ne contient aucun champ de fusion.
Hello tous,Je vois pas comment ta base avec son format actuelle peut être utilisé pour un publipostage avec Word.
Pour reformater ma base et tout mettre en ligne d'entête n'est pas pratique surtout pour l'impression.
J'ai moins remanié et j'ai même corrigé mon "corrigement" dans mon EDIT
PS: Tu n'as pas été récemment confronté au problème que j'expose dans la section Autres applications?
Sub recap_publipostage()
Set shr = Sheets("recap")
Set shp = Sheets("publi")
derL2 = shr.Cells(Rows.Count, 1).End(3).Row
derL2R = shp.Cells(Rows.Count, 1).End(3).Row
j = 11
shp.Select
Range(Cells(2, 1), Cells(derL2R + 1, 100)).ClearContents
derL2R = shp.Cells(Rows.Count, 1).End(3).Row
shr.Select
For i = 2 To derL2
On Error GoTo prochain
'If Not IsError(CLng(Cells(i, 7).Value)) Then
If CLng(Cells(i, 14).Value) > 0 Then
If Cells(i, 3).Value <> Cells(i - 1, 3).Value Then
shr.Range(Cells(i, 1), Cells(i, 13)).Copy Destination:=shp.Cells(derL2R + 1, 1)
Else
If shp.Cells(derL2R + 1, 3) = shr.Cells(i, 3) Then
j = j + 3
shr.Range(Cells(i, 11), Cells(i, 13)).Copy Destination:=shp.Cells(derL2R + 1, j)
Else
shr.Range(Cells(i, 1), Cells(i, 13)).Copy Destination:=shp.Cells(derL2R + 1, 1)
End If
End If
End If
If Cells(i, 3).Value <> Cells(i + 1, 3).Value Then derL2R = shp.Cells(Rows.Count, 1).End(3).Row: j = 11
prochain:
On Error GoTo -1
Next i
shp.Select
[A1].CurrentRegion.borders.LineStyle = xlNone
End Sub
Sub Test()
Dim pf As Range
Sheets("recap").Range("O2").FormulaR1C1 = "=AND(RC[-1]=""avis favorable"",RC[-14]=R1C17)"
Sheets("recap").Range("A1:N18").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("O1:O2"), Unique:=False
Set pf = [_FilterDataBase]
Sheets("publi").Rows("2:10000").Clear
pf.Offset(1, 0).Resize(pf.Rows.Count - 1).SpecialCells(12).Copy Sheets("publi").Range("A2")
Range("O2").ClearContents
Sheets("recap").ShowAllData
End Sub[code=vb]