A voir également:
- Vba tableau 2 dimensions
- Tableau word - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
11 réponses
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