[déplacé VB.NET -> VBA] problème de variables boucle loop [Résolu]

titeuf136 91 Messages postés vendredi 15 janvier 2010Date d'inscription 19 octobre 2012 Dernière intervention - 7 mars 2010 à 18:37 - Dernière réponse : titeuf136 91 Messages postés vendredi 15 janvier 2010Date d'inscription 19 octobre 2012 Dernière intervention
- 8 mars 2010 à 01:16
Bonjour,

A partir de données de ma feuille excel je rempli des textbox dans un userform. Plus tard ce userform me permettra de selectionner les textbox que je souhaite utiliser.

Ensuite je souhaite remplir un deuxième tableau dans ma feuille excel en fonction des données figurant dans les textbox

Mon problème est que la variable "p" se remet à zéro après une boucle loop.

Voici mon code
Private Sub UserForm_Initialize()
Dim tboextract As Variant
Dim tboextract3 As Variant
Dim I
Dim Unseul As New Collection
Dim Unseul3 As New Collection
Dim strElt As Variant
Dim strElt3 As Variant
Dim j
Set f = ActiveSheet

'LISTE TEXTBOX

For n = 1 To 8
    If f.Cells(2, n) <> "" Then
    suite = suite & f.Cells(2, n) & ";"
    End If
Next n
tboextract = Split(suite, ";")
On Error Resume Next
For I = 0 To UBound(tboextract)
   Unseul.Add tboextract(I), tboextract(I)
Next I
For Each strElt In Unseul
j = j + 1
UserForm1.Controls("TextBox" & j).Value = strElt
Next
On Error GoTo 0

'REMPLIR LE TABLEAU
k = 0
p = 0

For j = 1 To 3
tboextract3 = ""
suite2 = ""
strElt3 = ""
I = ""
k = 0

If UserForm1.Controls("TextBox" & j).Value <> "" Then
For n = 1 To 8

If f.Cells(2, n) = UserForm1.Controls("TextBox" & j).Value Then
suite2 = suite2 & f.Cells(1, n) & ";"
End If
Next n
tboextract3 = Split(suite2, ";")
On Error Resume Next
For I = 0 To UBound(tboextract3)
   Unseul3.Add tboextract3(I), tboextract3(I)
Next I
For Each strElt3 In Unseul3
Do Until Cells(6 + p, 2) = ""
p = p + 1
Loop
k = k + 1
f.Cells(6 + p + k, 2).Value = strElt3
'--------------------------------
' LIGNE QUI ME POSE PROBLEME
f.Cells(6 + p + k, 1).Value = UserForm1.Controls("TextBox" & j).Value
'--------------------------------
Next

End If
Next j
On Error GoTo 0


End Sub
Afficher la suite 

3 réponses

Répondre au sujet
titeuf136 91 Messages postés vendredi 15 janvier 2010Date d'inscription 19 octobre 2012 Dernière intervention - 8 mars 2010 à 01:16
+3
Utile
solution:

Private Sub UserForm_Initialize()
Dim tboextract As Variant
Dim tboExtract2 As Variant
Dim I
Dim Unseul As New Collection
Dim Unseul2 As New Collection
Dim strElt As Variant
Dim strElt2 As Variant

Dim j
Set f = ActiveSheet

'LISTE DS TEXTBOX

For n = 1 To 10
    If f.Cells(2, n) <> "" Then
    suite = suite & f.Cells(2, n) & ";"
    End If
Next n
tboextract = Split(suite, ";")
On Error Resume Next
For I = 0 To UBound(tboextract)
   Unseul.Add tboextract(I), tboextract(I)
Next I
For Each strElt In Unseul
j = j + 1
UserForm1.Controls("TextBox" & j).Value = strElt
Next
On Error GoTo 0

'LISTE DE SUITE 3

Dim tboextract3 As Variant
Dim Unseul3 As New Collection
Dim strElt3 As Variant
k = 0
CheckBox1 = True

For j = 1 To 3
Set Unseul3 = Nothing
Set Unseul3 = New Collection
suite2 = ""
k = 0
If UserForm1.Controls("checkbox" & j) = True And UserForm1.Controls("TextBox" & j).Value <> "" Then
For n = 1 To 10

If f.Cells(2, n) = UserForm1.Controls("TextBox" & j).Value Then
suite2 = suite2 & f.Cells(1, n) & ";"
End If
Next n
tboextract3 = Split(suite2, ";")
On Error Resume Next
For I = 0 To UBound(tboextract3)
   Unseul3.Add tboextract3(I), tboextract3(I)
Next I
Do Until Cells(6 + P, 2) = ""
P = P + 1
Loop
For Each strElt3 In Unseul3
k = k + 1
f.Cells(5 + P + k, 2).Value = strElt3
If f.Cells(5 + P + k, 2).Value <> "" Then
f.Cells(5 + P + k, 1).Value = UserForm1.Controls("TextBox" & j).Value
End If
'If k = 1 Then
'f.Cells(6 + p, 1).Value = UserForm1.Controls("TextBox" & j).Value
'End If
Next
End If
Next j
On Error GoTo 0
End Sub
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de titeuf136
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 7 mars 2010 à 19:35
0
Utile
... c'est fréquent qu'on déplace tes topics vers VBA, il serait temps d'y prêter attention

VB6 > dérivés > VBA

merci !

[hr]
Commenter la réponse de PCPT
titeuf136 91 Messages postés vendredi 15 janvier 2010Date d'inscription 19 octobre 2012 Dernière intervention - 7 mars 2010 à 19:41
0
Utile
OK désolé, je n'y avais pas prêté attention. Je m'en excuse .
Commenter la réponse de titeuf136

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.