Dimensionnement Tableau

  • Initiateur de la discussion Initiateur de la discussion Fanoo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

Fanoo

Guest
Bonjour à tous,

je souhaite récupérer les valeur de deux cellules d'une feuille différente pour dimensionner mon tableau hors avec mon code Visual Basic me renvoi une erreur l'indice n'appartient pas à la sélection ou alors quand je le déclare le tableau avec les valeurs de ces cellules directement l'erreur est 'constante requise' dans la déclaration du tableau je ne comprend pas pourquoi??
Merci d'avance de me lire et me répondre!!

Sub encadrer_tableau()

Dim i As Integer
Dim j As Integer
Dim cellule As Range
Dim VarTabLigne As Integer
Dim VarTabColonne As Integer
Dim VarTab() As String

VarTabLigne = Worksheets("Feuill2").Range("H6").Value
VarTabColonne = Worksheets("Feuill2").Range("H7").Value

ReDim VarTab(1 To VarTabLigne, 1 To VarTabColonne)

For i = 1 To UBound(VarTab, 1)
For j = 1 To UBound(VarTab, 2)
VarTab(i, j) = Chr(Int((26 * Rnd) + 1) + 64)
Debug.Print VarTab(i, j)
Next j
Next i

Range("B3").Resize(UBound(VarTab, 1), UBound(VarTab, 2)).Value = VarTab

For Each cellule In Range("B3", Range("B3").End(xlToRight).End(xlDown))
If cellule.Value <> "" Then cellule.Borders.Weight = xlThin
Next

End Sub
 
Re : Dimensionnement Tableau

Bonjour le fil, bonjour le forum,

Il semblerait que tu aies des ailes en trop...
VarTabLigne = Worksheets("Feuill2").Range("H6").Value)
VarTabColonne = Worksheets("Feuill2").Range("H7").Value)
Essaie comme ça :
Code:
VarTabLigne = Worksheets("Feuil2").Range("H6").Value
VarTabColonne = Worksheets("Feuil2").Range("H7").Value
 
Re : Dimensionnement Tableau

Merci pour l'aide!(oups pour les ailes en trop...).
La compilation en mode debug fonctionne bien ms lorsque je lance le programme Excel plante et je ne comprend pas pourquoi. Je ne sais pas si c'est un problème de mémoire ou de remplissage pourtant mon tableau n'est pas tres grand..
Si quelqu'un as une idée???
Sub encadrer_tableau()

Dim i As Integer
Dim j As Integer
Dim cellule As Range
Dim VarTabLigne As Integer
Dim VarTabColonne As Integer
Dim VarTab() As String

VarTabLigne = Worksheets("Feuil2").Range("H6").Value
VarTabColonne = Worksheets("Feuil2").Range("H7").Value

ReDim VarTab(VarTabLigne, VarTabColonne)

For i = 1 To UBound(VarTab, 1)
For j = 1 To UBound(VarTab, 2)
VarTab(i, j) = Chr(Int((26 * Rnd) + 1) + 64)
Debug.Print VarTab(i, j)
Next j
Next i

Range("B3").Resize(UBound(VarTab, 1), UBound(VarTab, 2)).Value = VarTab

For Each cellule In Range("B3", Range("B3").End(xlToRight).End(xlDown))
If cellule.Value <> "" Then cellule.Borders.Weight = xlThin
Next

End Sub
 
Re : Dimensionnement Tableau

Bonjour le fil, bonjour le forum,

Peut-être comme ça :
Code:
Sub encadrer_tableau()Dim i As Integer
Dim j As Integer
Dim cellule As Range
Dim VarTabLigne As Integer
Dim VarTabColonne As Integer
Dim VarTab() As String


VarTabLigne = Worksheets("Feuil2").Range("H6").Value
VarTabColonne = Worksheets("Feuil2").Range("H7").Value
ReDim VarTab(VarTabLigne, VarTabColonne)
For i = 1 To UBound(VarTab, 1)
    For j = 1 To UBound(VarTab, 2)
        VarTab(i, j) = Chr(Int((26 * Rnd) + 1) + 64)
    Next j
Next i
For i = 1 To UBound(VarTab, 1)
    For j = 1 To UBound(VarTab, 2)
        Range("B3").Resize(UBound(VarTab, 1), UBound(VarTab, 2)).Cells(i, j).Value = VarTab(i, j)
    Next j
Next i
For Each cellule In Range("B3", Range("B3").End(xlToRight).End(xlDown))
If cellule.Value <> "" Then cellule.Borders.Weight = xlThin
Next
End Sub

Pense à mettre un fichier en pièce jointe pour les prochaines fois...
 
Re : Dimensionnement Tableau

Merci robert ça fonctionne bien!
Mais je ne comprend pas vraiment pourquoi mon code ne marchait pas car lorsque je redéfinis ma plage je lui envoi toutes les données contenues dans VarTab:

Range("B3").Resize(UBound(VarTab, 1), UBound(VarTab, 2)).Value = VarTab

On est vraiment obligé de passer par une boucle??
C'est juste pour mieux comprendre mon erreur..

En tout cas encore merci beaucoup pour ton aide!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
732
Réponses
15
Affichages
782
Réponses
5
Affichages
909
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
293
Retour