Sub Ajout_comptes_feuilles_maitresses()

'Sub Ajout_compte_feuilles_maitresses

    Application.ScreenUpdating = False

Dim Counter, V1, I, J, K, Ligne_Insert1, Ligne_Insert2 As Integer
Dim Compte, Affectation, Affectation2 As String
Dim Result, Result2, Compte2, Compte3, Compte4 As Integer
Dim Montab(1 To 10000, 1 To 6) As Variant
Dim Montab2() As Integer 'stocke les valeurs de lignes d'insertion
Dim ValTest2, Msg
Dim base As String
Dim synthese As String

fdw = InputBox(Prompt:="Quel classement retenez-vous ? Expert ou Auditsoft ?", Default:="Saisir Expert OU Auditsoft")
If fdw = "Expert" Then
base = "ref"
Else
base = "Ref (2)"
End If

Counter = 5
Sheets("BALANCE").Activate
    While Not Range("B" & Counter) = ""
        Counter = Counter + 1
    Wend
    Counter = Counter - 1

Sheets(base).Activate
I = 2
l = 1
J = 15
K = 15

Do While Range("A" & I) <> ""
     V1 = Range("A" & I).Value
     Montab(V1, 1) = Range("B" & I).Value
     Montab(V1, 2) = Range("C" & I).Value
     Montab(V1, 4) = Range("D" & I).Value
     Montab(V1, 5) = Range("E" & I).Value
     I = I + 1
Loop

For I = 5 To Counter
    Compte = Sheets("BALANCE").Range("A" & I).Value
    Compte2 = Left(Compte, 2)
    Compte3 = Left(Compte, 3)
    Compte4 = Left(Compte, 4)
    Affectation = Sheets("BALANCE").Range("W" & I).Value
    Affectation2 = ""

    If (Montab(Compte2, 1) <> "" And Affectation = "") = True Then
        Result = Compte2
    ElseIf (Montab(Compte3, 1) <> "" And Affectation = "") = True Then
        Result = Compte3
    ElseIf (Montab(Compte4, 1) <> "" And Affectation = "") = True Then
        Result = Compte4
    Else: Result = ""
    End If

    If (Montab(Compte2, 4) <> "" And Affectation = "") = True Then
        Result2 = Compte2
    ElseIf (Montab(Compte3, 4) <> "" And Affectation = "") = True Then
        Result2 = Compte3
    ElseIf (Montab(Compte4, 4) <> "" And Affectation = "") = True Then
        Result2 = Compte4
    Else: Result2 = ""
    End If

    'Première procédure pour insertion dans première lead

    If Result <> "" Then
        Sheets(Montab(Result, 1)).Activate
        Sheets(Montab(Result, 1)).Visible = True
        J = 30
        Do While Range("A" & J).Value <> Montab(Result, 2)
            J = J + 1
        Loop

        Montab(Result, 3) = J - 3

        Affectation2 = Montab(Result, 1)

        'Ajout du nouveau compte dans lead
        Ligne_Insert1 = Montab(Result, 3)
        Sheets(Montab(Result, 1)).Range("A" & Ligne_Insert1).Value = Sheets("BALANCE").Range("A" & I).Value
        Ligne_Insert2 = Ligne_Insert1 + 1
        Sheets(Montab(Result, 1)).Rows(Ligne_Insert1 & ":" & Ligne_Insert1).Activate
        Selection.EntireRow.Hidden = False

        'Ajout d'une nouvelle ligne dans la lead et masquage
        Rows(Ligne_Insert2 & ":" & Ligne_Insert2).Select
        Selection.Insert Shift:=xlDown
        Selection.EntireRow.Hidden = True

        Range("B" & Ligne_Insert1 & ":" & "J" & Ligne_Insert1).Select
        Selection.Copy
        Range("B" & Ligne_Insert2 & ":" & "J" & Ligne_Insert2).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Montab(Result, 3) = Ligne_Insert2
        Range("A1").Select

    End If

    'Seconde procédure pour insertion dans seconde lead

    If Result2 <> "" Then
        Sheets(Montab(Result2, 4)).Activate
        Sheets(Montab(Result2, 4)).Visible = True
        K = 15
        Do While Range("A" & K).Value <> Montab(Result2, 5)
            K = K + 1
        Loop

        Montab(Result2, 6) = K - 3

        Affectation2 = Affectation2
        '& "/" & Montab(Result2, 4)
        Affectation = Montab(Result2, 4)

        'Ajout du nouveau compte dans lead
        Ligne_Insert1 = Montab(Result2, 6)
        Sheets(Montab(Result2, 4)).Range("A" & Ligne_Insert1).Value = Sheets("BALANCE").Range("A" & I).Value
        Ligne_Insert2 = Ligne_Insert1 + 1
        Sheets(Montab(Result2, 4)).Rows(Ligne_Insert1 & ":" & Ligne_Insert1).Activate
        Selection.EntireRow.Hidden = False

        'Ajout d'une nouvelle ligne dans la lead et masquage
        Rows(Ligne_Insert2 & ":" & Ligne_Insert2).Select
        Selection.Insert Shift:=xlDown
        Selection.EntireRow.Hidden = True

        Range("B" & Ligne_Insert1 & ":" & "J" & Ligne_Insert1).Select
        Selection.Copy
        Range("B" & Ligne_Insert2 & ":" & "J" & Ligne_Insert2).Select
        Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Montab(Result2, 6) = Ligne_Insert2
        Range("A1").Select

    End If

If Result <> "" Then
    Sheets("BALANCE").Range("W" & I) = Affectation2
    Sheets("BALANCE").Range("X" & I) = Affectation
End If
Next I

'Sheets("Bilan").Activate
'Sheets("Bilan").Visible = True

'ValTest2 = Sheets("Bilan").Range("C90").Value
'ValTest2 = Round(ValTest2, 2)
'If ValTest2 = 0 Then
 '    Msg = MsgBox("Le bilan au " & Sheets("Données").Range("B6").Value & " est équilibré")
'Else: Msg = MsgBox("Le bilan n'est pas équilibré")

'End If

Sheets("ENTETE").Select

MsgBox "Traitement terminé.", vbExclamation, "Message"

End Sub
