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 :

Arrangement aléatoire d'items 2 à 2


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut Arrangement aléatoire d'items 2 à 2
    Bonjour,


    Je dois à partir d'une liste arranger 2 par 2 chaque item sans jamais avoir un arrangement avec 2 mêmes items

    Exemple
    Toto
    Titi
    Yoyo

    Après traitement
    Toto -> Titi
    Titi -> yoyo
    Yoyo -> Toto

    J'ai codé cette routine

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sub TriColonneAleatoire()
     
     Dim Cell As Range
        Dim Tableau()
        Dim  i As Integer, j As Integer, k As Integer
        Dim idx as long   
     
        idx = Range("A65536").End(xlUp).Row
     
        ReDim Tableau(idx)
        Range("B1:B" & idx).ClearContents
        For Each Cell In Range("A1:A" & idx)
            Tableau(Cell.Row) = Cell
        Next Cell
     
        i = 1
        Do While idx > 2
     
            Randomize
            n = 0
            Do
                idxAlea = WorksheetFunction.RandBetween(1, idx)
                'n = n + 1
                'If n = 100 Then Exit Do
            Loop While Cells(i, 1) = Tableau(idxAlea)
     
            Cells(i, 2) = Tableau(idxAlea)
     
            'Supprime la lignes tirée aléatoirement.
            For j = 1 To UBound(Tableau) - 1
                k = 0
                If j >= idxAlea Then k = 1
                Tableau(j) = Tableau(j + k)
            Next j
     
            ReDim Preserve Tableau(idx - 1)
            idx = UBound(Tableau)
     
            i = i + 1
        Loop
     
        If Cells(i, 1).Value = Tableau(1) Or Cells(i + 1, 1).Value = Tableau(2) Then
            Cells(i, 2).Value = Tableau(2)
            Cells(i + 1, 2).Value = Tableau(1)
        Else
            Cells(i, 2).Value = Tableau(1)
            Cells(i + 1, 2).Value = Tableau(2)
     
        End If  
     
    End Sub

    Ca fonctionne mais je ne suis pas content de la verrue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       If Cells(i, 1).Value = Tableau(1) Or Cells(i + 1, 1).Value = Tableau(2) Then
            Cells(i, 2).Value = Tableau(2)
            Cells(i + 1, 2).Value = Tableau(1)
        Else
            Cells(i, 2).Value = Tableau(1)
            Cells(i + 1, 2).Value = Tableau(2)
     
        End If
    Car si je code
    L'arrangement pour le dernier item peut être ItemX -> Item X

    Toute idée pour rendre le code propre est la bienvenue
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  2. #2
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 365
    Points : 631
    Points
    631
    Par défaut
    PS : je ne comprend pas pourquoi tu veux coder

    ton code ne fonctionne qu'avec 2 lignes.

    le code me semble propre et la "verrue" nécessaire.

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour !

    Citation Envoyé par informer Voir le message
    Sur la base d'un code récupéré sur un forum (pardon de ne pas citer son auteur )
    Très mauvais choix de Copier / Coller ‼   C'est souvent le cas sans mener à bien une réflexion !
    Déjà rien que la ligne de code n°8 si version Excel > 2003 …


    Citation Envoyé par informer Voir le message
    Toute idée pour rendre le code propre est la bienvenue
    Perte de temps, c'est bien plus rapide de partir de zéro en respectant la Logique, ce code va direct à la poubelle ‼


    Exemple pourtant déjà présenté sur ce forum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Demo()
                Randomize
        With [A1].CurrentRegion.Columns(1)
                VA = .Value
            For N& = UBound(VA) To UBound(VA) / 2 Step -1
                P& = Fix(Rnd * (N - 1)) + 1
                VP = VA(P, 1):  VA(P, 1) = VA(N, 1):  VA(N, 1) = VP
            Next
                .Offset(, 1).Value = VA
        End With
    End Sub
    Tout étant déjà dans l'aide VBA interne et dans les tutoriels de ce forum …

    ___________________________________________________________________________________________________________

         Merci de cliquer sur en bas à droite de chaque message ayant aidé puis sur pour clore cette discussion …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonsoir Mar-L
    Très mauvais choix de Copier / Coller ‼ C'est souvent le cas sans mener à bien une réflexion !
    .....
    .....
    Perte de temps, c'est bien plus rapide de partir de zéro en respectant la Logique, ce code va direct à la poubelle ‼
    Voilà qui me mets en joie et d'excellente humeur.
    On ne le dira jamais suffisamment.
    Toute autre "approche" est tout, sauf du développement, de la création, etc ...
    Merci mille fois de l'avoir dit !
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Salut Jacques et merci de ton retour !

    Ces Copier / Coller d'autres forums sont vraiment agaçants, n'ont rien à faire ici
    et si question il y a, autant la poser sur le forum d'origine !

    D'habitude je passe mon chemin mais vu les exemples pourtant déjà présents sur ce forum …
    Si vraiment il y a eu une tentative de la part du demandeur,
    son effort se portera alors sur la compréhension de la simple logique de la démonstration fournie,
    devant lui rappeler ses années estudiantines !

    Et s'il commet un bis repetita dans une future discussion, l'ignorer sera mon choix certain et je ne serais pas le seul …

    ___________________________________________________________________________________________________________
    L'effort fait les forts …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    l'ignorer sera mon choix certain et je ne serais pas le seul
    Tu ne seras en effet alors pas le seul.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    La solution ne répond que partiellement à ma problématique car seule la moitié des items sont tirés au hasard
    L'autre moitié ne subit qu'une permutation.

    Donc la question reste d'actualité et merci pour ce remarquable échange épistolaire. Très distrayant !
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Dans ce cas là une présentation digne de ce nom - claire & exhaustive avec tenants & aboutissants - s'impose ‼

    Car pour un mélange - et non un tri ! - il est justement inutile de tout tirer ! …


    ___________________________________________________________________________________________________________
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément … (Nicolas Boileau)
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Tout est dans le titre qu'il faut prendre le temps de lire !

    La question reste ouverte!
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  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 informer

    effectivement les copier/coller sont rarement concluants

    il te faut pour cela connaitre le nombre de possibilités
    tu trouvera comment dans mon code avec "P"
    tu peux utiliser un dico ou collection qui n'acceptée pas les doublons
    et remplir cet object dans une boucle qui s'arrête quand le count correspond au nombre de possibilités

    tres tres simple

    je te laisse analyser ces quelques lignes
    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 test()
        Dim dico, tabo, p As Long
        With ActiveSheet
            Set dico = CreateObject("scripting.dictionary")
            tablo = .Range("A1:A8")
            p = Val(UBound(tablo) * UBound(tablo)) - UBound(tablo)
            Do
                DoEvents:
    re1:             x1 = Round(Rnd * UBound(tablo)): If x1 = 0 Then GoTo re1
    re2:             x2 = Round(Rnd * UBound(tablo)): If x2 = 0 Or x2 = x1 Then GoTo re2
                If Not dico.exists(.Cells(x1, 1) & " " & .Cells(x2, 1)) Then i = i + 1: dico(.Cells(x1, 1) & " " & .Cells(x2, 1)) = i
            Loop While i < p
            .Cells(1, 2).Resize(dico.Count, 1) = Application.Transpose(dico.keys)
        End With
        MsgBox p & " combinaisons trouvées"
    End Sub
    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

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Merci Patrick pour ta solution et cet apport constructif à ce post.
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  12. #12
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Patrick
    il te faut pour cela connaitre le nombre de possibilités
    tu trouvera comment ....
    Il trouvera de manière plus simple avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorksheetFunction.Combin(arg1, arg2)
    non ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    J'ai ce post Arrangement, récursivité et affichage (Cliquez ici) sans réponse, tout aide serait très appréciable
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Par contre Patrick la dimension hasard n'est pas intégrée dans ta solution et je ne veux pas toutes les combinaisons mais une combinaisons à chaque appel de la fonction

    Si reprends l'exemple:

    Exemple
    Toto
    Titi
    Yoyo

    Affichage après 1er appel
    Toto -> Titi
    Titi -> Yoyo
    Yoyo -> Toto

    Affichage après 2ième appel
    Toto -> Yoyo
    Titi -> Toto
    Yoyo -> Titi

    Tous les autres appels afficheront soit 1 ou 2 car aucun binôme avec les mêmes items n'est possible
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  15. #15
    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
    re
    @jacques je sais pas trop
    pour obtenir le même nombre qu'avec le calcul scolaire avec combin
    j'ai huit mots
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test2()
    MsgBox WorksheetFunction.Combin(8, 3)
    End Sub
    le 3 je comprends pas très bien en fait
    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

  16. #16
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    le 3 je comprends pas très bien en fait
    C'est pourtant simple et prêt à déguster comme au restaurant :
    Nombre de combinaisons distinctes de 3 éléments parmi huit éléments (donc 56 combinaisons)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  17. #17
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Merci pour ces infos mais on s'éloigne du sujet de mon post qui est le suivant:

    Si j'ai cette liste (Ici 3 items mais nombre d'items est indéfini) :
    • Toto
    • Titi
    • Yoyo


    Affichage après 1er appel
    • Toto -> Titi
    • Titi -> Yoyo
    • Yoyo -> Toto



    Affichage après 2ième appel
    • Toto -> Yoyo
    • Titi -> Toto
    • Yoyo -> Titi



    Tous les autres appels afficheront soit 1 ou 2 car aucun binôme avec les mêmes items n'est possible
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

  18. #18
    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
    re
    heu...... @jacques
    je ne combine pas 3 mais 2 éléments hein !!!!
    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

  19. #19
    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
    re
    informer
    le model que je t'ai donné te donne tout les possibilité par rapport a une liste dans une colonne
    il ne te reste qu'a modifier la plage
    je vois pas ce que tu veux d'autre
    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

  20. #20
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    981
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 981
    Points : 1 028
    Points
    1 028
    Billets dans le blog
    36
    Par défaut
    Patrick,

    L'idée de départ c'est d'attribuer au hasard une personne à une autre pour lui offrir un cadeau (Mini noël).

    Soit la liste des participants

    • Moi
    • Toi
    • Lui
    • Elle
    • Nous


    Le premier appel affiche de façon aléatoire
    (-> : offre cadeau à)

    Col A Col B
    • Moi -> Lui
    • Toi -> Nous
    • Lui->Toi
    • Elle->Moi
    • Nous->Elle


    Si je relance alors cela donne de façon aléatoire
    • Moi->Nous
    • Toi->Lui
    • Lui->Toi
    • Elle->Moi
    • Nous->Elle


    Et ainsi de suite à chaque relance

    J'ai joint le fichier. Et mon problème tient aux lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        If Cells(i, 1).Value = Tableau(1) Or Cells(i + 1, 1).Value = Tableau(2) Then
            Cells(i, 2).Value = Tableau(2)
            Cells(i + 1, 2).Value = Tableau(1)
        Else
            Cells(i, 2).Value = Tableau(1)
            Cells(i + 1, 2).Value = Tableau(2)
     
        End If
    Qui sortent de la boucle Do While ce que je ne trouve pas joli
    Fichiers attachés Fichiers attachés
    Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
    Poésie 44, n° 17 - Albert Camus

    Mes réponses vous ont aidés, un clic sur leur pouce vert
    Bonjour chez vous

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/10/2017, 10h19
  2. Comment associer les tables entre elles ?
    Par enadams dans le forum SQLite
    Réponses: 5
    Dernier message: 27/08/2015, 06h34
  3. Jeu - associer deux images entre elles
    Par Badiou dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 19/09/2011, 11h02
  4. [C#] Comment liés les clases placé dans .cs entre elle
    Par Etienne maheu dans le forum ASP.NET
    Réponses: 13
    Dernier message: 15/04/2004, 12h05
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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