Bonjour à tous.

Je travaille actuellement sur un système de formattage d'une feuille Excel en une autre plus exploitable.

La feuille d'origine représente en fait une succession d'écritures comptables et je dois en regrouper certaines.

Je bloque donc sur un moyen de sommer les montants de certaines ecritures et enregistrer ces sommes dans des variables spécifiques au numéro de compte (par exemple une variable au nom "cpt421110" donc "cpt"&<numéro de compte>).
Néanmoins, dans un soucis de généricité, je pars du principe que je ne connais pas tous les numéros de comptes, et donc, que je ne peux pas créer autant de variables qu'il y'a de comptes. Je voudrais donc les créer dans ma boucle automatiquement.

Mais voilà, je n'y arrive pas... Il me faut d'une tester si la variable n'est pas déjà créée afin de ne pas réécraser a chaque fois les sommes. Puis, il faut la créer ( "cpt"&<numéro de compte" ) et augmenter sa valeur de la somme présente dans la ligne du tableau.

Voila le code tel que j'aimerais qu'il soit. Mais je n'ia pas réussi a le mettre en état...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
 'On considère que C = + et D = -. Lorsqu'on fera les sommes de montant, on reconnaitra, alors ,
    'grace au signe du résultat si l'écriture est passée au Crédit ou au Débit.
 
    For i = 2 To ActiveSheet.UsedRange.Rows.Count
 
        Sens = Mid(Worksheets("source").Cells(i, 1).Value, 84, 1)   'Débit ou crédit
        CptNumero = Worksheets("etape1").Cells(i, 9).Value          'Numéro du compte
 
        'ICI : Test de l'existence de la variable <cpt&CptNumero>
        'Si il existe on fait rien, sinon on le créée
 
        Select Case CptNumero
 
            Case 421110, 427100
                If Sens = "C" Then
                    <cpt&CptNumero> = <cpt&CptNumero> + Worksheets("etape1").Cells(i, 11).Value
                Else
                    <cpt&CptNumero> = <cpt&CptNumero> - Worksheets("etape1").Cells(i, 11).Value
                End If
 
            Case 425100, 428650
                'On fait rien
 
End Select
Next
Merci d'avance.