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 :

Recherche d'un mot dans une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Apprenti ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 25
    Par défaut Recherche d'un mot dans une cellule
    Bonjour,

    Je suis toujours sur le même fichier, avec des problématiques de plus en plus compliquées (du moins, à mon niveau de débutant)
    J'ai toujours mes différentes feuilles traitant chacune d'une date de formation. Il arrive qu'une formation se déroule en plusieurs jours, non consécutifs. J'ai donc possibilité d'avoir des sessions de formations comportant plusieurs modules.
    Pour le moment, j'en ai avec 2 ou 3 modules (Dans ce cas, les premiers caractères de la cellule A2 sont "Module x" avec x dans [1;3]) et d'autres avec un seul module (auquel cas je mets directement le sujet et la cellule ne contient pas "module")
    Je voudrais pouvoir extraire la liste des présences (NB: Une feuille contient les noms des participants) dans un nouveau fichier, et ce pour chaque session de plusieurs modules.

    Le principe physique serait le suivant :
    Un bouton lancerait une userform dans laquelle je viendrais sélectionner la session voulue
    De cette sélection, je viendrais chercher les noms dans les différentes feuilles pour les coller dans un nouveau fichier, en supprimant les doublons
    Ce fichier prendrait le nom de la session (session y) et garderait en mémoire où il a pioché les noms (0 = absent, 1 = présent), avec une colonne par module

    Est-ce que je suis compréhensible ou non?

    D'avance merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Non, je n'ai rien compris...
    Mais tu peux t'intéresser aux diverses fonctions texte: Mid, Left, Right
    Et aussi Instr()

    Ou encore si tu recherches avec Find, le paramètre xlPart

  3. #3
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Mc Rafale,
    Il y a aussi la fonction Like
    Voici un morceau de code que j'ai eu a créer dans le passé où j'utilise "Like" et "Instr"

    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
    Do While WKS.Offset(i - 2, 2) <> ""
        If WKS.Offset(i - 2, 2) Like "*FR_Act1*" Then
            If InStr(WKS.Offset(i - 2, 2), sNom) Then
                If InStr(WKS.Offset(i - 2, 2), sDt) Then
                    WKS.Offset(j, 0) = WKS.Offset(i - 2, 2)
                End If
            End If
        End If
    i = i + 1
    If WKS.Offset(j, 0) = 0 Then
    j = j
    Else
    j = j + 1
    End If
    Loop
    Sinon Parmi a raison, ta demande n'est pas très claire mais bon, tu es encore apprenti
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  4. #4
    Membre averti
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Apprenti ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 25
    Par défaut
    Bonjour,

    Désolé si c'est pas clair, j'ai du mal à retranscrire mon besoin...
    En gros, je veux récupérer les plages G3:J30 de mon classeur "base de données" à chaque fois que B5 vaut 1 (par exemple), et les copier dans un nouveau classeur qui s'appellerait "Session 1".
    Puis faire pareil pour la session 2 quand B5=2, etc.

    Est-ce que c'est plus clair ou pas? ^^"


    (J'ai réussi à contourner la chaine de caractères qui me gênait, je n'ai plus qu'une cellule avec une valeur numérique)

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    As-tu un bout de code de ce que tu as essayé et expliquer ce qui ne va pas comme tu le voudrais ?

  6. #6
    Membre averti
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Apprenti ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 25
    Par défaut
    Citation Envoyé par parmi Voir le message
    As-tu un bout de code de ce que tu as essayé et expliquer ce qui ne va pas comme tu le voudrais ?
    J'ai ç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
    18
     
    Dim w As Integer
    Dim Ligne As Integer
     
     
    Private Sub CommandButton1_Click()
    'BOUTON OK
     
        For w = 2 To ActiveWorkbook.Worksheets.Count
            If Worksheets(w).Range("B5").Value = TextBox1.Value Then
                Active.Worksheet
                Range("G3:J30").Copy
                Set xlBook = xlApp.Workbooks.Add
                xlBook.SaveAs "essai"
                Range("A2").PasteSpecial
            End If
        Next
    End Sub

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 30/06/2014, 22h04
  2. [TSQL] calculer le nombre de mot dans une cellule
    Par ricachu dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 31/07/2006, 11h12
  3. Recherche d'un mot dans une structure
    Par Remedy dans le forum C
    Réponses: 28
    Dernier message: 25/05/2006, 23h37
  4. Recherche d'un mot dans une phrase se touvant dans un champ
    Par Grandbastien dans le forum Access
    Réponses: 3
    Dernier message: 02/04/2006, 09h58
  5. Recherche d'un mot dans une page
    Par Emcd dans le forum Langage
    Réponses: 4
    Dernier message: 12/01/2006, 18h25

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