[Catégorie modifiée VB6 --> VBA] Macro dans Excel

gerardmireille Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 15 mars 2014 - 20 août 2010 à 13:43
gerardmireille Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 15 mars 2014 - 10 sept. 2010 à 14:48
Je voudrais faire sous excel écrire un petit programme pour classer les équipes d'un concours de boules.
Je voudrais dans un tableau intercaler les hommes et les femmes :
Tableau 1 : tous les hommes
Tableau 2 : touts les femmes
Tableau 3 : un homme, une femme etc...
Je connais le nombre maxi de participants (H et F) = 52 mais le nombre peut être inférieur et le nombre de femmes n'est pas obligatoirement identique au nombre d'hommes.
Merci pour votre aide.
Cordialement

9 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
20 août 2010 à 13:56
Bonjour,

Oui on sait ce que tu veux faire, mais quelle est la question??
Qu'as tu essayé de faire, où rencontres-tu un souci?

Pour l'aide vba, voici un site très utile

PS : attention à la catégorie, VB6 n'est pas VBA


L'expérience, c'est une connerie par jour, mais jamais la même..
0
gerardmireille Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 15 mars 2014
20 août 2010 à 14:06
Bonjour,
Excuses mois pour le VB6 au lieu de VBA j'ai du lire trop rapidement.
Pour ce qui est de mon problème, j'ai précisé que je suis débutant retraité et qu'un coup de main d'un initié me serait bien utile pour pouvoir interpréter le code et le reprendre ultérieurement. J'ai déjà trouvé dans les forums des infos particulièrement intéressantes que j'ai pu exploiter mais là je n'ai rien trouvé et je sèche lamentablement.
Merci de ton indulgence et de ta compétence.

Cordialement.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 août 2010 à 14:58
Salut
En supposant :
- que "tableau" veuille dire "feuille Excel",
- que les noms soient dans la colonne A, de 1 à X,
- que tu veuilles intercaler les noms dans l'ordre dans lesquels ils apparaissent dans chaque "tableau",
je te propose ceci :
    Dim lCompteurHF     As Long
    Dim lCompteurFinal  As Long
    Dim maCellule       As Range
    
    lCompteurHF = 1     ' Ligne 1
    lCompteurFinal = 1  ' Ligne 1
    With Sheets("Tableau 3")
        Do While Not ((Sheets("H").Range("A" & lCompteurHF).Value = "") And _
                      (Sheets("F").Range("A" & lCompteurHF).Value = ""))
            maCellule = Sheets("Femmes").Range("A" & lCompteurHF).Value
            If maCellule <> "" Then
                .Range("A" & lCompteurFinal).Value = maCellule
                lCompteurFinal = lCompteurFinal + 1
            End If
            maCellule = Sheets("Hommes").Range("A" & lCompteurHF).Value
            If maCellule <> "" Then
                .Range("A" & lCompteurFinal).Value = maCellule
                lCompteurFinal = lCompteurFinal + 1
            End If
            lCompteurHF = lCompteurHF + 1
        Loop
    End With

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 août 2010 à 15:21
PS : coquille : Sheets("H") --> Sheets("Hommes")
idem pour F --> Femmes
De toute façon, il faudra que tu les remplaces par les noms de tes feuilles
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
the_little_big_man Messages postés 86 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 14 février 2011
20 août 2010 à 16:03
petite question pour mister jack. tu declare Macellule as Range mais tu l'affectes avec la valeur :

maCellule = Sheets("Hommes").Range("A" & lCompteurHF).Value


is it right ??
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 août 2010 à 17:29
Oui, tu as raison, j'ai bogué :

Tu as tout à fait raison, il suffit de remplacer As Range par As String
Bien vu !
ça marchera beaucoup mieux.

En fait, j'étais parti sur l'idée d'affecter maCellule à la cellule active.
Mais dans ce cas, d'autres bogues (manque le Set, manquent les .Value)
0
gerardmireille Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 15 mars 2014
20 août 2010 à 22:00
Bonsoir,
Merci de toutes ces propositions, je pars en vacances pour une semaine et je teste tout cela en rentrant, je vous tiendrai au courant
Cordialement
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 août 2010 à 00:36
C'est quoi, les 'vacances' ?
0
gerardmireille Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 15 mars 2014
10 sept. 2010 à 14:48
Bonjour Jack,
Les vacances c'est pas mal mais je me suis remis au travail.
Impeccable ton pgm ça a marché au premier coup.
Maintenant je passes à la phase suivante :
création des équipes par 2 (doublettes) en fonction d'un tableau de sélection selon le nombre de joueurs (44,48 ou 52).
Pour 48 joueurs
Par exemple N° 1 avec N° 22 (N° ordre du tableau créé hommes/Femmes) issu de ton programme, puis
3 avec 24, 5 avec 26 etc.. jusqu'à 23 avec 44.
Pour les équipes adverses:
N° 25 avec 2, 27 avec 4 etc.. jusqu'à 47 avec 48.
Malgré par mal de tatonnement je n'ai pas réussi à créer quelque chose de valable.
Un bon coup de main me serait bien utile
Merci d'avance.
Cordialement
0
Rejoignez-nous