Explication d'un code VBA

Bonjour,

j'ai besoin d'explication pour le code suivant que je ne comprends pas vraiment :

Sub Population1()
Dim Um(1 To 12) As Integer
Dim Lig As Long, N As Integer
    With Sheets("stat yc ucn à l'effectif")
    For Lig = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        'Sortir le N° dans la recherche
        N = Mid(.Cells(Lig, "A"), 3, 2)
        Um(N) = Um(N) + 1
    Next Lig
    End With

    With Sheets("synthèse")
    For Lig = 1 To 12
        Cells(Lig + 12, "N") = Um(Lig)
    Next Lig
    End With
End Sub

Je ne comprends pas cette partie :

 'Sortir le N° dans la recherche
        N = Mid(.Cells(Lig, "A"), 3, 2)
        Um(N) = Um(N) + 1

Merci de bien vouloir m'expliquer SVP

Hello,

La fonction Mid est l'équivalent de la formule STXT d'Excel.

=STXT(A1;2;4) équivaut à Mid(Range("A1").Value, 2, 4) <- Commence au 2ème caractère et donne 4 caractères

Si en A1 tu as le mot "milieu" il va renvoyer "ilie".

Essaie simplement ce bout de code...

Private Sub CommandButton1_Click()

    Dim milieu As String

    milieu = Mid(Range("A1").Value, 2, 4) '<- Commence au 2ème caractère et donne 4 caractères.

    Range("B1").Value = milieu

End Sub

Donc, avec le mot "milieu" en A1, dans les deux cas, STXT(A1;2;4) ou Mid(Range("A1").Value, 2, 4) te renvoie "ilie".

Par contre, je n'ai pas testé, mais à mon avis dans ton code il y a une erreur puisque Mid est un String et ton tableau Um() est en Integer...

Bonjour,

Hulk a écrit :

à mon avis dans ton code il y a une erreur puisque Mid est un String et ton tableau Um() est en Integer...

Non, non pas d'erreur, si le String issu de Mid est un nombre -c'est d'ailleurs bien commenté dans le code- :

'Sortir le N° dans la recherche

...il y a auto-conversion et le tableau "Um(indiceN)" s'incrémente de 1 à chaque fois.

Commentaire : C'est une manière de faire un peu cavalière mébon...

Après s'il faut expliquer ce qu'est un tableau ou Array, je te renvoie à une recherche de tuto plus approfondie car c'est un notion un peu complexe qui ne s'acquiert pas en quelques lignes.

A+

Re,

Au temps pour moi...

Rechercher des sujets similaires à "explication code vba"