Comment copier certaines cellules d'une colonne

Fermé
pealy - 9 oct. 2013 à 07:02
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 9 oct. 2013 à 11:13
Bonjour, j'ai un fichier comptable dans lequel j'ai de l'information de la colonne A que je veux extraire pour copier vis-à-vis le détail de la colonne B. Je veux extraire les numéros de compte qui figurent dans la colonne A, mais cette colonne a aussi des dates, du texte, des lignes vides, etc. Mon fichier comporte plus de 60 000 lignes et une centaine de comptes à isoler. Dans l'exemple qui suit, je voudrais extraire le compte 1000 (sans le faire manuellement) et le copier vis-à vis toutes les lignes de la colonne B qui ont "banque". La même chose pour le compte 2000 que je voudrais l'associer vis-à-vis toutes les lignes de la colonne B qui ont le mot "compte client., ainsi de suite. Comment faire?

colonne A colonne B colonne C colonne D
1000 banque
solde d'ouverture 10000.00
2013-01-01 banque compte fourn 20000.00
2013-01-02 banque retrait 1000.00

2000 compte client
solde d'ouverture 20000.00
2013-01-01 compte client ABC 1000.00
2013-01-01 compte client ACD 200.00
A voir également:

2 réponses

Lentzouille Messages postés 670 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 11 septembre 2020 64
9 oct. 2013 à 09:15
Bonjour,

Je pense que le mieux pour toi serait de faire un tableau croisé dynamique, avec les données voulus,

Cordialement,
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
Modifié par michel_m le 9/10/2013 à 11:15
Bonjour

Le problème est surtout dû au fait que tu as des cellules vides, sinon un simple nb.si copié pourrait faire l'affaire
donc, vba semble être la solution avec une macro paramétrée
on suppose que la 1° ligne comporte les ent^tes


Sub choisir()
affecter 1000, "compte client" 'écrire le n°compte et la désignation voulus
End Sub

'---------------------------
Sub affecter(compte, designation)
Dim derlig As Long, Nbre As Long, Lig As Long

'initialisation
Application.ScreenUpdating = False
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
Nbre = Application.CountIf(Columns("A"), compte)
'recherche
If Nbre = 0 Then 'erreur compte
GoTo vide
Else
Lig = 1
For cptr = 1 To Nbre
Lig = Columns("A").Find(compte, Cells(Lig, "A"), xlValues).Row
Cells(Lig, "B") = designation
Next
End If

Exit Sub
vide:
MsgBox "Numéro inconnu", vbCritical
End Sub


Si la durée est trop longue, fais signe on peut aller + vite

Michel
0