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 :

Récupération et utilisation de valeur séparée par ; indépendamment


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 28
    Par défaut Récupération et utilisation de valeur séparée par ; indépendamment
    Bonjour à tous,

    J'ai une colonne avec plein de nombre séparé par des ;

    Exemple : 1445 ; 1447 ; 1234 ; 1652 ; 1477

    Je voudrais séparer ces données sans les copier dans d'autres cellules, mais seulement récupérer la valeur pour faire une recherche de cette même valeur dans un autre fichier

    Exemple :
    Je récupère la valeur 1445, je vais voir dans mon autre fichier, je cherche en fonction de la valeur 1445, je copie une donnée dans mon fichier (ou se trouve 1445).
    Et je recommence pour toutes les valeurs séparé par ;

    Pour le moment, je voudrais déjà récupérer les valeurs

    Si je met :

    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
    Sub extractionNb()
        Dim Tableau() As String
        Dim i As Integer
     
        'découpe la chaine
     
     
        Tableau = Split(Range("Y4").Value, ";")
     
        'boucle sur le tableau pour visualiser le résultat
        For i = 0 To UBound(Tableau)
            'résultat
            MsgBox (Tableau(i))
        Next i
    End Sub
    ça fonctionne très bien! Mais quand je veux l'appliquer sur plusieurs lignes et donc faire un compteur, il y a un problème au niveau de tableau, pourquoi?

    Voici le code :

    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
    Sub extractionNb()
        Dim Tableau() As String
        Dim i As Integer
        Dim cpt As Integer
        'découpe la chaine
     
        For cpt = 4 To cpt = Cells(Cells.Rows.Count, "Y").End(xlUp).Row
        Tableau = Split(Range("Y" & cpt).Value, ";")
        Next cpt
     
        'boucle sur le tableau pour visualiser le résultat
        For i = 0 To UBound(Tableau)
            'Le résultat s'affiche 
            MsgBox (Tableau(i))
        Next i
    End Sub
    Merci pour votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu penses ajouter des données au fur et à mesure dans ton tableau .. en fait tu écrases ton tableau à chaque tour de boucle

    peut-être quelque chose comme ça ?
    j'ai remplacé le MsgBox par un Debug.Print (plus pratique que d'avoir 200 MsgBox à valider)
    j'ai modifier le Type de certaines variables pour éviter les dépassements de capacité (éviter les Integer pour des lignes par exemple)

    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
    Sub extractionNb()
    Dim Tableau
    Dim i As Long
    Dim cpt As Long
     
    For cpt = 4 To Cells(Cells.Rows.Count, "Y").End(xlUp).Row
        Tableau = Split(Range("Y" & cpt).Value, ";")
     
        For i = LBound(Tableau) To UBound(Tableau)
            'Le résultat s'affiche
            Debug.Print Tableau(i) & " de la ligne " & cpt
        Next i
    Next cpt
     
    End Sub

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 28
    Par défaut
    Bonjour Joe,

    Merci pour ton aide!

    Je viens de tester le code, mais rien ne s'affiche... Pas d'erreur ni mes valeurs

    Enfait je viens de retester en mettant le MsgBox, ça fonctionne!

    Faut il faire quelques chose de particulier pour voir les valeurs avec Debug.Print?

    Merci en tout cas!!

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    les tests sont visible dans la fenêtre d'exécution de l'éditeur de code

    pour l'afficher :

    - Ctrl + G
    OU
    - Menu Affichage >> Fenêtre d'exécution

    l'avantage, c'est que toutes tes lignes de tests vont s'écrire sans que tu soit dans l'obligation de valider la fenêtre (contrairement aux MsgBox)

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 28
    Par défaut
    Je ne connaissais pas, merciii !!!!!

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

Discussions similaires

  1. lire valeurs séparées par point-virgule
    Par iznogoud_23 dans le forum Fortran
    Réponses: 12
    Dernier message: 10/05/2010, 16h07
  2. récupérer des valeurs séparées par un point virgule
    Par Spaccio dans le forum Requêtes
    Réponses: 9
    Dernier message: 10/04/2009, 11h22
  3. Réponses: 2
    Dernier message: 02/07/2008, 02h26
  4. Réponses: 1
    Dernier message: 28/09/2007, 15h59
  5. Champs contenant plusieurs valeurs séparées par ;
    Par sabine34 dans le forum Requêtes
    Réponses: 3
    Dernier message: 11/05/2007, 12h20

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