IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Vérifier existence occurence dans variable tableau [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 27
    Par défaut Vérifier existence occurence dans variable tableau
    Bonjour,

    Mon fichier excel est composé de cellules (jusque là, normal), par contre certaines contiennent plusieurs valeurs (1 par ligne).

    Dans ma macro, j'extrait ces valeurs grâce à la fonction split qui écrit chaque chaine de caractère séparée de "Chr(10)" (saut de ligne) dans un tableau. J'ai 2 colonnes de ces cellules et j'effectue ensuite un calcul par rapport à chaque ligne de chaque cellule.

    Mon problème est que parfois, je peux avoir 3 lignes dans ma cellule, mais que la deuxième ligne est vide! Derrière, ça me bloque tout.

    J'ai donc pensé à tester l'existence d'une occurence de ma variable tableau en fonction de chaque indice.

    Avez-vous une idée de comment faire cela?

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Tu peux tester l'indice dimensionnel de ton tableau.
    Si l'indice est égal à 2 (cas de 3 éléments), tu réarranges ton tableau de façon à conserver les 2 éléments utiles.
    Si l'indice est supérieur à 2 (cas de 4 éléments ou plus), tu affiche un message et tusors de la procédure
    Exemple avec les valeurs en colonne A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub test()
    Dim Tablo
    Dim i As Long
        For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
            Tablo = Split(Range("A" & i), Chr(10))
            If UBound(Tablo) > 1 Then
            Select Case UBound(Tablo)
            Case 2
                Tablo(1) = Tablo(2)
                ReDim Preserve Tablo(UBound(Tablo) - 1)
            Case Else
                MsgBox "Le tableau contient plus de 3 éléments."
                Exit Sub
            End Select
            End If
        Next i
    End Sub
    Cordialement.

  3. #3
    Membre averti
    Inscrit en
    Avril 2011
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 27
    Par défaut
    Bonjour,

    C'est effectivement quelque chose qui marche parfaitement!!!

    Grand merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compter les occurences dans un tableau trié
    Par degseb dans le forum Pascal
    Réponses: 2
    Dernier message: 10/01/2008, 16h34
  2. Compter le nombre d'occurence dans un tableau
    Par titou250 dans le forum Excel
    Réponses: 2
    Dernier message: 08/01/2008, 16h25
  3. Vérifier existence fonction dans une classe
    Par zoparg dans le forum Langage
    Réponses: 2
    Dernier message: 17/02/2007, 13h29
  4. Relevé des occurences dans un tableau
    Par jjg65 dans le forum C++
    Réponses: 1
    Dernier message: 16/08/2006, 09h02
  5. Réponses: 5
    Dernier message: 29/03/2006, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo