Les 2 premiers bloc que j’ai réalisé sont bon mais les autres ont été mal construit
ce que j’ai fais :
ElseIf Ws.Cells(i, 1).Value = « DETTES SOCIALES » Then
If Ws.Cells(i, 17).Value <> 0 Then
If Ws.Cells(i, 3).Value <> 0 Then
Sheets(« Dettes & Créances »).Cells(Ligne2, 1).Value = Ws.Cells(i, 3).Value
End If
Sheets(« Dettes & Créances »).Cells(Ligne2, 2).Value = Ws.Cells(i, 17).Value
Ligne2 = Ligne2 + 1
End If
Ce que tu as fais :
ElseIf Ws.Cells(i, 1).Value = « DETTES ETAT » Then
If Ws.Cells(i, 17).Value <> 0 Then
If Ws.Cells(i, 3).Value <> 0 Then
Sheets(« Dettes & Créances »).Cells(Ligne3, 1).Value = Ws.Cells(i, 3).Value
End If
If Ws.Cells(i, 17).Value <> 0 Then (en trop !!!)
Sheets(« Dettes & Créances »).Cells(Ligne3, 2).Value = Ws.Cells(i, 17).Value
End If
Ligne3 = Ligne3 + 1 (mal placé !!!)
Il falait mettre ainsi :
ElseIf Ws.Cells(i, 1).Value = « DETTES ETAT » Then
If Ws.Cells(i, 17).Value <> 0 Then
If Ws.Cells(i, 3).Value <> 0 Then
Sheets(« Dettes & Créances »).Cells(Ligne3, 1).Value = Ws.Cells(i, 3).Value
End If
Sheets(« Dettes & Créances »).Cells(Ligne3, 2).Value = Ws.Cells(i, 17).Value
Ligne3 = Ligne3 + 1
End If
ce qui donne ce code dans son intégralité :
Dim D1%, i%, Ligne1%, Ligne2%, Ligne3%, Ligne4%, Ligne5%, Ws As Worksheet
Set Ws = Sheets(« Import balance »)
D1 = Ws.Range(« A » & Rows.Count).End(xlUp).Row
Ligne1 = 5
Ligne2 = 68
Ligne3 = 74
Ligne4 = 78
Ligne5 = 109
For i = 2 To D1
If Ws.Cells(i, 1).Value = « DETTES FOURNISSEURS » Then
If Ws.Cells(i, 17).Value <> 0 Then
If Ws.Cells(i, 3).Value <> 0 Then
Sheets(« Dettes & Cr?ances »).Cells(Ligne1, 1).Value = Ws.Cells(i, 3).Value
End If
Sheets(« Dettes & Cr?ances »).Cells(Ligne1, 2).Value = Ws.Cells(i, 17).Value
Ligne1 = Ligne1 + 1
End If
ElseIf Ws.Cells(i, 1).Value = « DETTES SOCIALES » Then
If Ws.Cells(i, 17).Value <> 0 Then
If Ws.Cells(i, 3).Value <> 0 Then
Sheets(« Dettes & Cr?ances »).Cells(Ligne2, 1).Value = Ws.Cells(i, 3).Value
End If
Sheets(« Dettes & Cr?ances »).Cells(Ligne2, 2).Value = Ws.Cells(i, 17).Value
Ligne2 = Ligne2 + 1
End If
ElseIf Ws.Cells(i, 1).Value = « DETTES ETAT » Then
If Ws.Cells(i, 17).Value <> 0 Then
If Ws.Cells(i, 3).Value <> 0 Then
Sheets(« Dettes & Cr?ances »).Cells(Ligne3, 1).Value = Ws.Cells(i, 3).Value
End If
Sheets(« Dettes & Cr?ances »).Cells(Ligne3, 2).Value = Ws.Cells(i, 17).Value
Ligne3 = Ligne3 + 1
End If
ElseIf Ws.Cells(i, 1).Value = « CREANCES CLIENT » Then
If Ws.Cells(i, 17).Value <> 0 Then
If Ws.Cells(i, 3).Value <> 0 Then
Sheets(« Dettes & Cr?ances »).Cells(Ligne4, 1).Value = Ws.Cells(i, 3).Value
End If
Sheets(« Dettes & Cr?ances »).Cells(Ligne4, 2).Value = Ws.Cells(i, 17).Value
Ligne4 = Ligne4 + 1
End If
ElseIf Ws.Cells(i, 1).Value = « CREANCES ETAT » Then
If Ws.Cells(i, 17).Value <> 0 Then
If Ws.Cells(i, 3).Value <> 0 Then
Sheets(« Dettes & Cr?ances »).Cells(Ligne5, 1).Value = Ws.Cells(i, 3).Value
End If
Sheets(« Dettes & Cr?ances »).Cells(Ligne5, 2).Value = Ws.Cells(i, 17).Value
Ligne5 = Ligne5 + 1
End If
End If
Next i
Application.ScreenUpdating = True
et là plus de bug Next sans For
Récupères ces lignes intégrales (attention aux guillemets à ressaisir au clavier)
Fais des essais et dis moi