Aide

Bonsoir,

SVP si quelqu'un pourrait m'expliquer le programme suivant :

Option Explicit

Dim lig, lig2 As Integer

Sub test()

Dim k, j, i, ligne As Integer

Dim var1 As Range

i = 0

j = 0

For i = 2 To lig

k = 0

Set var1 = Sheets(1).Range("A" & i)

For j = 2 To lig2

If Sheets(2).Range("A" & j) = var1 Then

If k = 0 Then

Sheets(1).Range("B" & i) = Sheets(2).Range("B" & j)

k = k + 1

ligne = Sheets(1).Range("B" & i).Row

ElseIf k <> 0 Then

Rows(ligne + 1).Insert

Sheets(1).Range("B" & ligne + 1) = Sheets(2).Range("B" & j)

Sheets(1).Range("A" & ligne + 1) = var1

i = i + 1

''Sheets(1).Range("B" & i)=

End If

End If

Next j

Next i

End Sub

Sub cal()

Sheets(1).Activate

lig = 2

Do While Not IsEmpty(Sheets(1).Range("A" & lig))

lig = lig + 1

Loop

Sheets(2).Activate

lig2 = 2

Do While Not IsEmpty(Sheets(2).Range("A" & lig2))

lig2 = lig2 + 1

Loop

Sheets(1).Activate

Call test

End Sub

Bonjour,

Tu serais inspiré de mettre ton code sous balises Code dans ton post. C'est la moindre des choses, et je ne le lirai pas jusque là...

Egalement, s'il ne l'est pas, comme il semble, il serait bon de l'indenter, ça facilite beaucoup ! et de supprimer ces lignes vides au milieu qui n'aboutissent qu'à me faire scroller plus que nécessaire pour lire...

En attendant je peux déjà te dire que les déclarations de variables sont défectueuses : les variables se typent individuellement et non en groupe...

En outre il serait bon d'avoir le code où sont initialisées les variables module (puisqu'elles ne le sont pas dans la procédure avant d'y être utilisées).

Cordialement.

Bonsoir MFerrand !

je me demandais combien de temps vous mettriez pour répondre à ce post !

9 minutes ! C'est pas mal !

Ceci dit je suis d'accord avec vous : un minimum de présentation ne fait pas de mal

Et il est vrai qu'un code en balise [code] avec une indentation "correcte" cela facilite grandement la lecture et donc les réponses !

@ bientôt

LouReeD

Rechercher des sujets similaires à "aide"