OVH Cloud OVH Cloud

Dim et Redim

4 réponses
Avatar
Frédo P.
Bonsoir ou Bonjour
je ne parviens pas à affecter aux variables actx as range la variable
Tranche(x): est ce Qq peut me dire ou j'ai une erreur?

Dim tranche() As Single
col = Sheets("stocks").[a3] - 6
ReDim tranche(0 To 3, col) As Single

act1.Value = Application.WorksheetFunction.Transpose(tranche(0))
act2.Value = Application.WorksheetFunction.Transpose(tranche(1))
act3.Value = Application.WorksheetFunction.Transpose(tranche(2))
act4.Value = Application.WorksheetFunction.Transpose(tranche(3))
--

Fred
nspfredpost@free.fr
Rep=mid(add,4,16)
Ana.: Norton 2003

4 réponses

Avatar
Denis Michon
Bonjour Frédo,

Je n'ai pas vraiment compris ce que tu tentais, mais voici un exemple sur les tableaux.


'---------------------------------------------
Sub Tableau()

'Comme tu travailles dans excel et qu'excel
'n'a pas de colonnes(0) ou de lignes(0), il est
'préférable que les bornes inférieurs des dimensions
'du tableau soit 1 et non 0

'Déclaration du tableau
Dim tranche() As Single

Sheets("Feuil2").[a3] = 24
col = Sheets("Feuil2").[a3] - 6

ReDim tranche(1 To 3, 1 To col) As Single


'Initialisation du tableau
For A = 1 To UBound(tranche, 1)
For b = 1 To UBound(tranche, 2)
tranche(A, b) = A * b
Next
Next

'Copie les données du tableau vers la plage de cellules : C1:T3
'2 syntaxes pour un mème résultat
Range("C1").Resize(UBound(tranche, 1), UBound(tranche, 2)) = tranche
Range("C1").Resize(3, 19) = tranche

'2 façons d'écrire cette ligne de code : plage : C5:E22
Range("C5").Resize(UBound(tranche, 2), UBound(tranche, 1)) = Application.Transpose(tranche)
Range("C5").Resize(19, 3) = Application.Transpose(tranche)

End Sub
'---------------------------------------------


Salutations!





"Frédo P." a écrit dans le message de news:3fa057e3$0$2789$
Bonsoir ou Bonjour
je ne parviens pas à affecter aux variables actx as range la variable
Tranche(x): est ce Qq peut me dire ou j'ai une erreur?

Dim tranche() As Single
col = Sheets("stocks").[a3] - 6
ReDim tranche(0 To 3, col) As Single

act1.Value = Application.WorksheetFunction.Transpose(tranche(0))
act2.Value = Application.WorksheetFunction.Transpose(tranche(1))
act3.Value = Application.WorksheetFunction.Transpose(tranche(2))
act4.Value = Application.WorksheetFunction.Transpose(tranche(3))
--

Fred

Rep=mid(add,4,16)
Ana.: Norton 2003
Avatar
Denis Michon
Légère correction : Modifier les 19 pour 18 qui est le résultat de 24-6


'---------------------------------------------
Sub Tableau()

'Comme tu travailles dans excel et qu'excel
'n'a pas de colonnes(0) ou de lignes(0), il est
'préférable que les bornes inférieurs des dimensions
'du tableau soit 1 et non 0

'Déclaration du tableau
Dim tranche() As Single

Sheets("Feuil2").[a3] = 24
col = Sheets("Feuil2").[a3] - 6

ReDim tranche(1 To 3, 1 To col) As Single


'Initialisation du tableau
For A = 1 To UBound(tranche, 1)
For b = 1 To UBound(tranche, 2)
tranche(A, b) = A * b
Next
Next

'Copie les données du tableau vers la plage de cellules : C1:T3
'2 syntaxes pour un mème résultat
Range("C1").Resize(UBound(tranche, 1), UBound(tranche, 2)) = tranche
Range("C1").Resize(3, 19) = tranche

'2 façons d'écrire cette ligne de code : plage : C5:E22
Range("C5").Resize(UBound(tranche, 2), UBound(tranche, 1)) = Application.Transpose(tranche)
Range("C5").Resize(19, 3) = Application.Transpose(tranche)

End Sub
'---------------------------------------------


Salutations!





"Frédo P." a écrit dans le message de news:3fa057e3$0$2789$
Bonsoir ou Bonjour
je ne parviens pas à affecter aux variables actx as range la variable
Tranche(x): est ce Qq peut me dire ou j'ai une erreur?

Dim tranche() As Single
col = Sheets("stocks").[a3] - 6
ReDim tranche(0 To 3, col) As Single

act1.Value = Application.WorksheetFunction.Transpose(tranche(0))
act2.Value = Application.WorksheetFunction.Transpose(tranche(1))
act3.Value = Application.WorksheetFunction.Transpose(tranche(2))
act4.Value = Application.WorksheetFunction.Transpose(tranche(3))
--

Fred

Rep=mid(add,4,16)
Ana.: Norton 2003
Avatar
Frédo P.
Bonsoir Denis
Je te remercie pour ta réponse
C'est en quelque sorte ce que je cherchais, la manière de faire pour
attribuer à une plage représentée par 4 colonnes non contigues, les valeurs
d'une variable dimensionnée à 2 dimentions comme "Tranche(n,n)",
Pour arriver à ce que je voulais , j'utilisais auparavant 4 variables et 4
plages. Fusses préférable?: j'en sais rien, mais en tout cas, moins pratique
.Le but est aussi de réduir les lignes de code.
à+
--
Fred

Rep=mid(add,4,16)
Ana.: Norton 2003
"Denis Michon" a écrit dans le message de news:
VOZnb.18773$
Légère correction : Modifier les 19 pour 18 qui est le résultat de 24-6


'---------------------------------------------
Sub Tableau()

'Comme tu travailles dans excel et qu'excel
'n'a pas de colonnes(0) ou de lignes(0), il est
'préférable que les bornes inférieurs des dimensions
'du tableau soit 1 et non 0

'Déclaration du tableau
Dim tranche() As Single

Sheets("Feuil2").[a3] = 24
col = Sheets("Feuil2").[a3] - 6

ReDim tranche(1 To 3, 1 To col) As Single


'Initialisation du tableau
For A = 1 To UBound(tranche, 1)
For b = 1 To UBound(tranche, 2)
tranche(A, b) = A * b
Next
Next

'Copie les données du tableau vers la plage de cellules : C1:T3
'2 syntaxes pour un mème résultat
Range("C1").Resize(UBound(tranche, 1), UBound(tranche, 2)) = tranche
Range("C1").Resize(3, 19) = tranche

'2 façons d'écrire cette ligne de code : plage : C5:E22
Range("C5").Resize(UBound(tranche, 2), UBound(tranche, 1)) Application.Transpose(tranche)
Range("C5").Resize(19, 3) = Application.Transpose(tranche)

End Sub
'---------------------------------------------


Salutations!





"Frédo P." a écrit dans le message de
news:3fa057e3$0$2789$

Bonsoir ou Bonjour
je ne parviens pas à affecter aux variables actx as range la variable
Tranche(x): est ce Qq peut me dire ou j'ai une erreur?

Dim tranche() As Single
col = Sheets("stocks").[a3] - 6
ReDim tranche(0 To 3, col) As Single

act1.Value = Application.WorksheetFunction.Transpose(tranche(0))
act2.Value = Application.WorksheetFunction.Transpose(tranche(1))
act3.Value = Application.WorksheetFunction.Transpose(tranche(2))
act4.Value = Application.WorksheetFunction.Transpose(tranche(3))
--

Fred

Rep=mid(add,4,16)
Ana.: Norton 2003






Avatar
Frédo P.
Rebs Denis
Aprés essai ,Resize n'est pas accepté: xl97

--
Fred


"Denis Michon" a écrit dans le message de news:
VOZnb.18773$
Légère correction : Modifier les 19 pour 18 qui est le résultat de 24-6


'---------------------------------------------
Sub Tableau()

'Comme tu travailles dans excel et qu'excel
'n'a pas de colonnes(0) ou de lignes(0), il est
'préférable que les bornes inférieurs des dimensions
'du tableau soit 1 et non 0

'Déclaration du tableau
Dim tranche() As Single

Sheets("Feuil2").[a3] = 24
col = Sheets("Feuil2").[a3] - 6

ReDim tranche(1 To 3, 1 To col) As Single


'Initialisation du tableau
For A = 1 To UBound(tranche, 1)
For b = 1 To UBound(tranche, 2)
tranche(A, b) = A * b
Next
Next

'Copie les données du tableau vers la plage de cellules : C1:T3
'2 syntaxes pour un mème résultat
Range("C1").Resize(UBound(tranche, 1), UBound(tranche, 2)) = tranche
Range("C1").Resize(3, 19) = tranche

'2 façons d'écrire cette ligne de code : plage : C5:E22
Range("C5").Resize(UBound(tranche, 2), UBound(tranche, 1)) Application.Transpose(tranche)
Range("C5").Resize(19, 3) = Application.Transpose(tranche)

End Sub
'---------------------------------------------


Salutations!





"Frédo P." a écrit dans le message de
news:3fa057e3$0$2789$

Bonsoir ou Bonjour
je ne parviens pas à affecter aux variables actx as range la variable
Tranche(x): est ce Qq peut me dire ou j'ai une erreur?

Dim tranche() As Single
col = Sheets("stocks").[a3] - 6
ReDim tranche(0 To 3, col) As Single

act1.Value = Application.WorksheetFunction.Transpose(tranche(0))
act2.Value = Application.WorksheetFunction.Transpose(tranche(1))
act3.Value = Application.WorksheetFunction.Transpose(tranche(2))
act4.Value = Application.WorksheetFunction.Transpose(tranche(3))
--

Fred

Rep=mid(add,4,16)
Ana.: Norton 2003