Sub ModifBisFinal()
Dim fl As Worksheet
Dim TabTemp As Variant
Dim TabTempFeuile As Range
Dim TabTempBis() As Variant
'Désactiver le raffraichissement d'écran
Application.ScreenUpdating = False
' Travailler sur la feuille Vte, Cai et Bqe
For Each fl In Worksheets
If fl.Name = "Vte" Or fl.Name = "Cai" Or fl.Name = "Bqe" Then
Set TabTempFeuile = fl.Range(fl.Cells(1, 1), fl.Cells(fl.Cells(65536, 1).End(xlUp).Row, 10))
TabTemp = fl.Range(fl.Cells(1, 1), fl.Cells(fl.Cells(65536, 1).End(xlUp).Row, 10))
ReDim TabTempBis(LBound(TabTemp, 1) To UBound(TabTemp, 1), LBound(TabTemp, 1) To UBound(TabTemp, 2) - 3)
For i = LBound(TabTemp, 1) To UBound(TabTemp, 1)
If fl.Name = "Vte" Then
TabTempBis(i, 1) = TabTemp(i, 2) ' Date
TabTempBis(i, 2) = TabTemp(i, 6) ' N° de pièce
TabTempBis(i, 3) = TabTemp(i, 3) ' Compte
TabTempBis(i, 4) = TabTemp(i, 4) ' Libellé
If i > 1 Then
TabTempBis(i, 5) = CDbl(Replace(TabTemp(i, 7), ".", ",")) ' Débit
TabTempBis(i, 6) = CDbl(Replace(TabTemp(i, 8), ".", ",")) ' Crédit
Else
TabTempBis(i, 5) = TabTemp(i, 7) ' Débit
TabTempBis(i, 6) = TabTemp(i, 8) ' Crédit
End If
ElseIf fl.Name = "Cai" Then
TabTempBis(i, 1) = TabTemp(i, 2) ' Date
TabTempBis(i, 3) = TabTemp(i, 3) ' Compte
TabTempBis(i, 4) = TabTemp(i, 4) ' Libellé
If TabTemp(i, 6) Like "*" & "/" & "*" Then
TabTempBis(i, 2) = Split(TabTemp(i, 6), "/")(1) ' N° de pièce (pour ne garder que les caractères de droite, remplacer le 0 entre parenthèse par un 1)
TabTempBis(i, 7) = Split(TabTemp(i, 6), "/")(0) ' N° de Reference (pour ne garder que les caractères de droite, remplacer le 0 entre parenthèse par un 1)
Else
TabTempBis(i, 2) = TabTemp(i, 6) ' N° de pièce
TabTempBis(i, 7) = TabTemp(i, 6) ' N° de pièce (pour ne garder que les caractères de droite, remplacer le 0 entre parenthèse par un 1)
End If
If i > 1 Then
TabTempBis(i, 5) = CDbl(Replace(TabTemp(i, 7), ".", ",")) ' Débit
TabTempBis(i, 6) = CDbl(Replace(TabTemp(i, 8), ".", ",")) ' Crédit
Else
TabTempBis(i, 5) = TabTemp(i, 7) ' Débit
TabTempBis(i, 6) = TabTemp(i, 8) ' Crédit
TabTempBis(i, 7) = "N° Reference"
End If
ElseIf fl.Name = "Bqe" Then
TabTempBis(i, 1) = TabTemp(i, 2) ' Date
TabTempBis(i, 3) = TabTemp(i, 3) ' Compte
TabTempBis(i, 4) = TabTemp(i, 4) ' Libellé
If TabTemp(i, 6) Like "*" & "/" & "*" Then
TabTempBis(i, 2) = Split(TabTemp(i, 6), "/")(1) ' N° de pièce (pour ne garder que les caractères de droite, remplacer le 0 entre parenthèse par un 1)
TabTempBis(i, 7) = Split(TabTemp(i, 6), "/")(0) ' N° de Reference (pour ne garder que les caractères de droite, remplacer le 0 entre parenthèse par un 1)
Else
TabTempBis(i, 2) = TabTemp(i, 6) ' N° de pièce
TabTempBis(i, 7) = TabTemp(i, 6) ' N° de pièce
End If
End If
If i > 1 Then
TabTempBis(i, 5) = CDbl(Replace(TabTemp(i, 7), ".", ",")) ' Débit
TabTempBis(i, 6) = CDbl(Replace(TabTemp(i, 8), ".", ",")) ' Crédit
Else
TabTempBis(i, 5) = TabTemp(i, 7) ' Débit
TabTempBis(i, 6) = TabTemp(i, 8) ' Crédit
TabTempBis(i, 7) = "N° Reference"
End If
Next i
' feuille Cai
If fl.Name = "Cai" Then
ReDim Preserve TabTempBis(LBound(TabTempBis, 1) To UBound(TabTempBis, 1), LBound(TabTempBis, 1) To UBound(TabTempBis, 2) + 1)
For j = LBound(TabTempBis, 1) + 1 To UBound(TabTempBis, 1)
For k = j + 1 To UBound(TabTempBis, 1)
If TabTempBis(j, 7) = CDbl(TabTempBis(k, 7)) Then
'TabTempBis(j, 8) = CDbl(TabTempBis(k, 7))
'TabTempBis(k, 8) = CDbl(TabTempBis(k, 7))
End If
Next k
Next j
End If
fl.Cells(1, 11).Resize(UBound(TabTempBis, 1), UBound(TabTempBis, 2)) = TabTempBis
Set TabTempFeuile = Nothing
Erase TabTemp, TabTempBis
End If
Next fl
Sheets("Cai").Activate
'Réactiver le raffraichissement d'écran
Application.ScreenUpdating = True
End Sub