Tableau VBA deux dimensions
Fermé
goomis95
Messages postés
39
Date d'inscription
mardi 3 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2009
-
5 nov. 2009 à 11:55
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 7 nov. 2009 à 21:58
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 7 nov. 2009 à 21:58
A voir également:
- Vba tableau 2 dimensions
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- +33 2 70 23 08 68 ✓ - Forum Mobile
11 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
5 nov. 2009 à 12:57
5 nov. 2009 à 12:57
Sans exemple de ton fichier c'est pas facile mais....
je note en gras les ... corrections
Je comprends que tu veux mettre les données dans un tableau et pas les numéros de ligne : )
En espérant que cela t'aidera.
A+
Sub ExempleTableau()
'Définition des variables
Dim i As Integer, j As Integer
Dim K As Integer
'*Choix du feuillet
Sheets("requête").Select
'*Attribution de l'id a la valeur K
K = Range("D9").Value
'*Définit le tableau à 2 dimensions ainsi que leur taille.
Dim VarTab(1 To 50, 1 To 50) As String ' Certes, ça marche mais c'est lourd VarTab (50,2) aurait suffit
'*On ouvre la feuillet logiciel
Sheets("logiciel").Select
'*Pour i = 1 jusqu'à
For i = 1 To UBound(VarTab, 1) '*boucle sur la 1ere dimension
' là tu vois que tu n'utilise que 2 dimensions pas 50
'* Si k = valeur de i
If Value = K Then ' value n'est pas défini à la limite tu as peut-être voulu écrire i=k ???
For j = 1 To UBound(VarTab, 2) '*boucle sur la 2eme dimension
'*Alimente les éléments du tableaux
VarTab(i, j) = i & j ' seulement i & j varie de 1 à 50
'VarTab(i, j)=cells(i,j).value ' lavaleur d'une cellule ligne i colonne J est placée dans le tableau
'*on entre dans requête
Sheets("requête").Select
'*recherche ligne vide
nli = ActiveSheet.Range("A65356").End(xlUp).Row + 1
'*écrit le résultat du tableau[i,j] dans la ligne vide
ActiveSheet.Cells(nli, i, j) = VarTab(i, j) ' ça c'est faux il faut écrire ActiveSheet.Cells(nli, j) = VarTab(i, j)
Next j
End If
Next i
End Sub
je note en gras les ... corrections
Je comprends que tu veux mettre les données dans un tableau et pas les numéros de ligne : )
En espérant que cela t'aidera.
A+
Sub ExempleTableau()
'Définition des variables
Dim i As Integer, j As Integer
Dim K As Integer
'*Choix du feuillet
Sheets("requête").Select
'*Attribution de l'id a la valeur K
K = Range("D9").Value
'*Définit le tableau à 2 dimensions ainsi que leur taille.
Dim VarTab(1 To 50, 1 To 50) As String ' Certes, ça marche mais c'est lourd VarTab (50,2) aurait suffit
'*On ouvre la feuillet logiciel
Sheets("logiciel").Select
'*Pour i = 1 jusqu'à
For i = 1 To UBound(VarTab, 1) '*boucle sur la 1ere dimension
' là tu vois que tu n'utilise que 2 dimensions pas 50
'* Si k = valeur de i
If Value = K Then ' value n'est pas défini à la limite tu as peut-être voulu écrire i=k ???
For j = 1 To UBound(VarTab, 2) '*boucle sur la 2eme dimension
'*Alimente les éléments du tableaux
VarTab(i, j) = i & j ' seulement i & j varie de 1 à 50
'VarTab(i, j)=cells(i,j).value ' lavaleur d'une cellule ligne i colonne J est placée dans le tableau
'*on entre dans requête
Sheets("requête").Select
'*recherche ligne vide
nli = ActiveSheet.Range("A65356").End(xlUp).Row + 1
'*écrit le résultat du tableau[i,j] dans la ligne vide
ActiveSheet.Cells(nli, i, j) = VarTab(i, j) ' ça c'est faux il faut écrire ActiveSheet.Cells(nli, j) = VarTab(i, j)
Next j
End If
Next i
End Sub