Bonjour,
voici un exemple que j'ai l'habitude d'utiliser pour les tableaux à redimensionner.
Option Explicit
Dim MonTableau() As Variant
Private Sub CommandButton3_Click()
If Range("A5") = "" Then
Range("A5") = "0"
Range("B5") = "0"
Range("C5") = "0"
Range("D5") = "0"
Range("E5") = "0"
Range("F5") = "0"
Range("A1").Select
MsgBox "la fiche est vide"
End If
Range("A1").Select
Dim DerniereLigne As Byte
DerniereLigne = Range("A4").End(xlDown).Row
Dim NbreDeLignes As Byte
NbreDeLignes = DerniereLigne
ReDim MonTableau(NbreDeLignes, 6)
Call AffecterValeursTableau(NbreDeLignes)
End Sub
Sub AffecterValeursTableau(DerniereLigneTableau)
Dim CompteurLignes As Byte
Dim CompteurColonnes As Byte
For CompteurLignes = 0 To DerniereLigneTableau
For CompteurColonnes = 0 To 6
MonTableau(CompteurLignes, CompteurColonnes) = Cells(CompteurLignes + 5, CompteurColonnes + 1)
Next CompteurColonnes
Next CompteurLignes
Dim a As String, b As String
a = InputBox("entrez le numero de client dont vous voulez avoir les infos, " & Chr(10) & "0 : Si vous voulez avoir des infos sur la totalité des clients")
b = InputBox("tapez le numéro correspondant à l'information désirée :" & Chr(10) & " 0 : N° ou nombre de clients" & Chr(10) & " 1 : quantité" & Chr(10) & " 2 : prix HT" & Chr(10) & " 3 : Taux de TVA" & Chr(10) & " 4 : montant TVA" & Chr(10) & " 5 : Total TTC")
If a <> "" Then
If b <> "" Then
MsgBox "le résultat est : " & Round(MonTableau(a, b), 3)
End If
End If
End Sub