Sub Tableau() Dim Tablo1, Tablo2, Tablo3, nb Dim I As Integer, J As Integer Dim bol As Boolean Dim Adr As Worksheet, Par As Worksheet Dim zon As Range Dim derligneAdr As Integer Dim derlignePar As Integer Set Adr = Sheets("ADRESSE") Set Par = Sheets("Param") derligneAdr = Adr.Range("A300").End(xlUp).Row derlignePar = Par.Range("D300").End(xlUp).Row Tablo1 = Adr.Range("A1:A" & derligneAdr) Tablo2 = Par.Range("D2:D" & derlignePar) ReDim Tablo3(1 To 1) For I = 1 To UBound(Tablo1, 1) For J = 1 To UBound(Tablo2, 1) If Tablo1(I, 1) Tablo2(J, 1) Then bol True Next J If bol = False Then nb = nb + 1 ReDim Preserve Tablo3(1 To nb) Tablo3(nb) = Tablo1(I, 1) Debug.Print Tablo3(nb) End If bol = False Next I End Sub
If Tablo3 <> "" Then ReDim Preserve Tablo3(UBound(Tablo3) + 1)
Private Sub Command1_Click() Dim tablo3 If tablo3 <> "" Then ReDim Preserve tablo3(UBound(tablo3) + 1) tablo3(UBound(tablo3)) = 3 End Sub Private Sub Command2_Click() ReDim tablo3(0) If tablo3(0) <> "" Then ReDim Preserve tablo3(UBound(tablo3) + 1) tablo3(UBound(tablo3)) = 3 If tablo3(0) <> "" Then ReDim Preserve tablo3(UBound(tablo3) + 1) tablo3(UBound(tablo3)) = 4 For I = 0 To UBound(tablo3) MsgBox tablo3(I) Next End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionTablo3(UBound(Tablo3)) = Tablo1(I, 1)
Je ne comprends pas cette ligne :
Code Visual Basic :
If Tablo3 <> "" Then ReDim Preserve Tablo3(UBound(Tablo3) + 1)
Dim Tablo1, Tablo2, Tablo3*==>> donc tablo3 est une variable de type variant ===>> puis ton code va voir si elle contient une chaine non vide ===>> elle n'en contient pas ===>> ta variable tablo3 (qui n'est donc encore rien d'autre qu'un Variant et pas un tableau) ne se transforme pas par miracle en un tabeau redimensionné ===>> et ta ligne suivante, à savoir :
Tablo3(UBound(Tablo3)) = Tablo1(I, 1)
Sub Tableau() Dim Tablo1, Tablo2, tablo3, tablo4 Dim i As Integer, j As Integer Dim bol As Boolean Dim Adr As Worksheet, Par As Worksheet Dim zon As Range Dim derligneAdr As Integer Dim derlignePar As Integer Dim x, y Dim nb x = 21 y = 21 Set Adr = Sheets("ADRESSE") Set Par = Sheets("Param") derligneAdr = Adr.Range("A300").End(xlUp).Row derlignePar = Par.Range("D300").End(xlUp).Row Tablo1 = Adr.Range("A1:A" & derligneAdr) Tablo2 = Par.Range("D2:D" & derlignePar) ReDim tablo3(1 To 1) For i = 1 To UBound(Tablo1, 1) For j = 1 To UBound(Tablo2, 1) If Tablo1(i, 1) <> Tablo2(j, 1) Then nb = nb + 1 ReDim Preserve tablo3(1 To nb) tablo3(nb) = Tablo1(i, 1) Debug.Print tablo3(nb) Exit For End If Next j x = x + 1 Range("A" & x) = tablo3(nb) Next i ReDim tablo4(1 To 1) For j = 1 To UBound(Tablo2, 1) For i = 1 To UBound(Tablo1, 1) If Tablo2(j, 1) <> Tablo1(i, 1) Then nb = nb + 1 ReDim Preserve tablo4(1 To nb) tablo4(nb) = Tablo2(j, 1) Debug.Print tablo4(nb) Exit For End If Next i y = y + 1 Range("B" & y) = tablo4(nb) Next j End Sub
mais il me reste à faire apparaitre les resultats du tablo3 dans une msgbox, et là je coince
For x = 1 to Ubound(le_tableau) msgbox le_tableau(x) next
For x = 1 To UBound(Tablo3) Resultat = Resultat & Tablo3(x) & vbCrLf Next MsgBox Resultat
Dim I, J As Integer
Dim I As Integer, J As Integer