VBA - Sélectionner une valeur
nobilis
-
Armojax Messages postés 1860 Date d'inscription Statut Membre Dernière intervention -
Armojax Messages postés 1860 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé une macro dans excel. Dans celle-ci j'ai un tableau défini comme ceci :
Dim tabCol(0 To 49, 0 To 23), x, y As Integer
Dans ce tableau, j'obtiens une liste de valeur. Je voudrais sélectionner, pour chaque ligne de ce tableau, la première valeur différente de 0.
Ensuite, je voudrais insérer cette valeur dans un tableau défini comme suit :
Dim tabPremCol(0 To 49, 1)
Merci de votre aide
J'ai créé une macro dans excel. Dans celle-ci j'ai un tableau défini comme ceci :
Dim tabCol(0 To 49, 0 To 23), x, y As Integer
Dans ce tableau, j'obtiens une liste de valeur. Je voudrais sélectionner, pour chaque ligne de ce tableau, la première valeur différente de 0.
Ensuite, je voudrais insérer cette valeur dans un tableau défini comme suit :
Dim tabPremCol(0 To 49, 1)
Merci de votre aide
A voir également:
- VBA - Sélectionner une valeur
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Selectionner texte sur pdf - Guide
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Valeur ascii - Guide
- Comment sélectionner un message sur whatsapp pour y répondre - Guide
1 réponse
Hello nobilis,
En gros je vois ce que tu veux faire, mais j'ai un doute sur : Dim tabPremCol(0 To 49, 1). Si tu veux mettre dans ce tableau une valeur par ligne, pourquoi le définis-tu avec 2 dimensions ? Il me semble que Dim tabPremCol(0 To 49) suffirait, non ?
Autre question : est-ce bien nécessaire de gérer un tabeau à occurrences variables ? Est-ce que Dim tabCol(49, 23) ne suffirait pas ? (c'est juste une question, ça peut être tout-à-fait justifié pour ton problème précis).
Pour extraire la première valeur non nulle d'une ligne, il suffit d'écrire :
En passant, fais gaffe à tes définitions de variables. Quand tu écris :
seul y est défini comme Integer, le reste est considéré comme variant par défaut (erreur courante).
On peut définir plusieurs variables dans un même Dim, mais il faut préciser le type pour chaque variable :
Dim A As Integer, B As Integer, C As String, D As Worksheet etc.
En tout cas, essaie et regarde si ça marche
Ajx.
En gros je vois ce que tu veux faire, mais j'ai un doute sur : Dim tabPremCol(0 To 49, 1). Si tu veux mettre dans ce tableau une valeur par ligne, pourquoi le définis-tu avec 2 dimensions ? Il me semble que Dim tabPremCol(0 To 49) suffirait, non ?
Autre question : est-ce bien nécessaire de gérer un tabeau à occurrences variables ? Est-ce que Dim tabCol(49, 23) ne suffirait pas ? (c'est juste une question, ça peut être tout-à-fait justifié pour ton problème précis).
Pour extraire la première valeur non nulle d'une ligne, il suffit d'écrire :
For I = 0 To 49 For J = 0 To 23 If tabCol(I, J) <> 0 Then tabPremCol(I) = tabCol(I, J) Exit For ' fait sortir de la boucle dès qu'on a trouvé End If Next J Next I
En passant, fais gaffe à tes définitions de variables. Quand tu écris :
Dim tabCol(0 To 49, 0 To 23), x, y As Integer
seul y est défini comme Integer, le reste est considéré comme variant par défaut (erreur courante).
On peut définir plusieurs variables dans un même Dim, mais il faut préciser le type pour chaque variable :
Dim A As Integer, B As Integer, C As String, D As Worksheet etc.
En tout cas, essaie et regarde si ça marche
Ajx.