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 :

Combinaison de nom sur VBA Excels


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Combinaison de nom sur VBA Excels
    Bonjour,

    je suis un débutant sur VBA Excel, je desire faire une macro qui puisse me donner toutes les posssibilites de combinaison entre les noms et prenoms que peut avoir une personne.

    je vous donne un exemlpe:
    Nom : Bouyo Adrian Fall
    Prenom: Justin Juju Jull

    L`idée serait d`avoir toutes les combinaisons possibles.

    Justin BOuyo Adrian
    Justin Bouyo
    Juju Bouyo Adrian Fall
    Jull Adrian Fall....

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Question : Peut-il y avoir plusieurs prénom ou pas de prénom ou pas de nom ?
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Non, il y a forcement des prénoms et des noms


    Citation Envoyé par Igloobel Voir le message
    Bonjour,

    Question : Peut-il y avoir plusieurs prénom ou pas de prénom ou pas de nom ?

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour la communauté

    J'ai essayé de faire une macro mais elle ne m'aide que très peu, peut-on l'améliorer afin d'avoir une macro répondant à mon besoin ?

    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
    19
    20
    21
    22
    23
    24
    Sub Macro1()
    Dim iP1 As Long
    Dim iP2 As Long
    Dim Col As Integer
     
    Dim iDest As Long
     
    iDest = 1
     
    For iP1 = 2 To Range("A:A").End(xlDown).Row
     
        For Col = 2 To Rows("1").End(xlToRight).Column
     
            For iP2 = 2 To Columns(Col).End(xlDown).Row
     
                Range("E" & iDest).Value = Range("A" & iP1).Value & Cells(iP2, Col).Value
     
                iDest = iDest + 1
     
            Next iP2
     
        Next Col
     
    Next iP1

  5. #5
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour

    Avant de coder quoi que ce soit, prend un crayon et fais un algorithme te permettant d'arriver à ton besoin.

    Tu sais combien tu auras de combinaisons en entre un triplet (X, Y, Z) et un autre (A, B, C) avec au moins un élément du premier triplet et au moins un élément du second.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  6. #6
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    mets une capture écran pour montrer comment sont organiser tes données

    et mets une indentation à ton code et pense à utiliser le bouton (#) qui mets des balises code pour le post
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Pour vous donner une idée.

    C'est un exemple fictif ( pas de nom réel)

    Nom : 2019-03-22_112437.png
Affichages : 161
Taille : 64,5 Ko



    Citation Envoyé par Igloobel Voir le message
    Bonjour,

    mets une capture écran pour montrer comment sont organiser tes données

    et mets une indentation à ton code et pense à utiliser le bouton (#) qui mets des balises code pour le post

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Tu as Axel Charles machin

    Qu'en est il de Charles Axel machin
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    c'est justement pour cela que je cherche une macro pour me faciliter la tâche.

    Peut importe la position de chaque prénom, la macro va soRtir toutes les possibilités.


    Pour faire simple regarde cette exemple pour 2 noms et 2 prénoms: "Gilles Fu ( prénom) Lee jean (nom)"

    Gilles Fu lee jean
    Gilles lee jean
    fu lee
    Gilles Fu lee
    Gilles lee
    fu lee
    Gilles Fu Jean
    Gilles Jean
    Fu Jean



    Citation Envoyé par mercatog Voir le message
    Tu as Axel Charles machin


    Qu'en est il de Charles Axel machin

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    une petite demo
    tout est dit dans les msgboxs
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Sub test()
        mot = Array("mot1", "mot2", "mot3")
        a = UBound(mot) + 1    'a=3 pour 3 mots
        'algo
        x = a * (a - 1) * (a - 2)     'algo simple comme peau de bananne pour connaitre le nombre de possibilite de combinaison de 3 mots
        MsgBox "il y a  " & x & " posibilités pour les combinaisons de 3 mots selon l'algo "
        'algo en boucle
        For i = 1 To UBound(mot) - 1
            x = a * (a - i)
        Next
        MsgBox "il y a aussi  " & x & " posibilités pour les combinaisons de 3 mots selon l'algo  calculé  dans une boucle "
        '
        '
        'testons voir avec une boucle laaaaaaaaaargement !!!!!!!!!!!!! superieurs aux possibilités et un dico
        '
        Set dico = CreateObject("scripting.dictionary")
        For i = 1 To 100000    ' on boucle 100000 fois
    re1:
            a1 = mot(Round(Rnd * 2))    'on choisi au hasard  1 mot
    re2:
            a2 = mot(Round(Rnd * 2)): If a2 = a1 Then GoTo re2   'on choisi au hasard  un 2d  mot si  c'est le meme que le premier on rechoisi pour le 2d
    re3:
            a3 = mot(Round(Rnd * 2)): If a3 = a2 Or a3 = a1 Then GoTo re3    'on choisi au hasard  un 3eme  mot si  c'est le meme que le 2d on rechoisi pour le 3eme
            Randomize
            '
            dico(a1 & " : " & a2 & " : " & a3) = ""      'on ajoute au dico
            '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
            'If dico.Count = x Then i = 100000'on sort des que l'on a atteint le nombre de possibilité
            '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
        Next
        '
        mess = "il y a toujours " & dico.Count & " posibilités pour les combinaison de 3 mots acec 100000 tours de boucle pour le dico " & vbCrLf & Join((dico.keys), vbCrLf)
        '
        mess = mess & vbCrLf & "pour les combinaisons de 2 il suffit de reprendre les items du dico en gardant que les 2 premiers"
     
    MsgBox mess
    End Sub
    j'ai bloqué la ligne de sortie de boucle pour bien tourner 100000 fois afin de bien demontrer que le calcul precedent (avec ou sans boucle)est correct

    donc quand on regarde le resultat on peut facilmement comprendre qu'une triple boucle imbriquée fera tres bien l'affaire
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Mot de passe sur VBA Excel
    Par vietzims dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/05/2008, 09h26
  2. Livre sur VBA excell
    Par Mr_JF dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2008, 08h57
  3. help sur VBA excel
    Par soffy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/05/2007, 11h49
  4. Réponses: 3
    Dernier message: 09/04/2006, 09h10

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