VBA - Sélectionner une valeur

Fermé
nobilis - 21 mars 2005 à 12:13
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 - 21 mars 2005 à 15:05
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

1 réponse

Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 527
21 mars 2005 à 15:05
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 :
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.
0