Bonjour
Nouveau bug dans le fichier.
Vous pouvez trouver ci-joint le fichier avec les 4 fiches de relance. Comme vous pouvez le voir, la deuxième et la 4ème fiche de relance sont du même bateau, même matériau, même épaisseur, même coloris.. Les 2 feuilles devraient normalement être fusionnées.
Hum.. c'est pas un bug à proprement parler. Puis, rappelez vous quand je vous avais écrit que cela poserait probablement des soucis.
- En premier, juste pour garder l'ancien code sous le coude dans un autre module de votre fichier, désactivez le code actuel dans votre fichier ou donnez lui un autre nom (genre Fiche_relance-Old)
- Collez le code ci-dessous :
Sub Fiche_relance()
Dim cel As Range
Dim ShFr As Worksheet
Dim i As Byte, j As Byte, k As Byte, sh As Byte
Dim ref As String
Dim Existe As Boolean
Call Trier
Application.ScreenUpdating = False
Set ShFr = Worksheets("Fiche_relance")
k = 1
For sh = 1 To Sheets.Count
If Left(Sheets(sh).Name, 8) = "FR" & "_" & Format(Day(Date), "00") & "-" & Format(Month(Date), "00") Then k = k + 1
Next sh
With Worksheets("BDD")
For Each cel In .ListObjects("T_Bdd").ListColumns(19).DataBodyRange
Select Case cel.Value
Case Is = "": Exit For
Case Is = "Oui"
If cel.Interior.ColorIndex <> 3 Then
If cel.Value = "Oui" Then
For sh = 1 To Sheets.Count
ref = Sheets(sh).Cells(4, 8) & Sheets(sh).Cells(3, 3) & Sheets(sh).Cells(4, 3) & Sheets(sh).Cells(3, 6)
If Sheets(sh).Name Like "FR_*" And cel.Offset(0, -15) & cel.Offset(0, -9) & cel.Offset(0, -8) & cel.Offset(0, -13) = ref Then
Existe = 1: Exit For
End If
Next sh
Select Case Existe
Case Is = 0
Sheets("Fiche_relance").Copy After:=Sheets(Sheets.Count)
Set ShFr = ActiveSheet
ShFr.Name = "FR" & "_" & Format(Day(Date), "00") & "-" & Format(Month(Date), "00") & "_" & k
k = k + 1
i = 3
j = 7
ShFr.Cells(3, i) = cel.Offset(0, -9) 'Materiau
ShFr.Cells(4, i) = cel.Offset(0, -8) 'Epaisseur
ShFr.Cells(3, i + 3) = cel.Offset(0, -13) 'Coloris
ShFr.Cells(4, i + 3) = Now 'Date
ShFr.Cells(4, i + 5) = cel.Offset(0, -15) 'type bateau
Case Is = 1
Set ShFr = Sheets(sh)
j = ShFr.Range("A" & Rows.Count).End(xlUp).Row + 1
End Select
ShFr.Range("A" & j) = cel.Offset(0, -16) 'Bateau
ShFr.Range("B" & j) = cel.Offset(0, -12) 'Meuble
ShFr.Range("C" & j) = cel.Offset(0, -11) 'Identification
ShFr.Range("D" & j) = cel.Offset(0, -7) 'Long
ShFr.Range("E" & j) = cel.Offset(0, -6) 'Larg
ShFr.Range("F" & j) = cel.Offset(0, -10) 'qte
ShFr.Range("G" & j) = cel.Offset(0, -5) 'flux
ShFr.Range("H" & j) = cel.Offset(0, -3) 'Motif relance
ShFr.Range("I" & j) = cel.Offset(0, -1) 'Commentaire
ElseIf ShFr.Cells(3, i) <> "" And ShFr.Cells(4, i + 5) = cel.Offset(0, -15) And ShFr.Cells(3, i) = cel.Offset(0, -9) And _
ShFr.Cells(4, i) = cel.Offset(0, -8) And ShFr.Cells(3, i + 3) = cel.Offset(0, -13) Then
j = j + 1
ShFr.Range("A" & j) = cel.Offset(0, -16) 'Bateau
ShFr.Range("B" & j) = cel.Offset(0, -12) 'Meuble
ShFr.Range("C" & j) = cel.Offset(0, -11) 'Identification
ShFr.Range("D" & j) = cel.Offset(0, -7) 'Long
ShFr.Range("E" & j) = cel.Offset(0, -6) 'Larg
ShFr.Range("F" & j) = cel.Offset(0, -10) 'qte
ShFr.Range("G" & j) = cel.Offset(0, -5) 'flux
ShFr.Range("H" & j) = cel.Offset(0, -3) 'Motif relance
ShFr.Range("I" & j) = cel.Offset(0, -1) 'Commentaire
End If
cel.Interior.ColorIndex = 3 'ajout couleur rouge
Call Recherche(ShFr, i) 'recherche bateau urgent
End If
End Select
ref = ""
Existe = 0
Next cel
.Range("T_BDD").Sort Key1:=Range("T_BDD[Date]"), Header:=xlYes, Order1:=xlAscending 'tri pour remettre BDD par date
End With
Application.ScreenUpdating = True
End Sub
Désolé c'est un peu long
A noter que dans votre fichier posté il y a un message à l'ouverture du fichier au sujet d'un fichier Export Total.xlsx
Cordialement