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 :

Besoin d'aide à la création d'une macro dans XL-2010


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Besoin d'aide à la création d'une macro dans XL-2010
    Bonjour,
    Je m'occupe de la convocation des arbitres de Volleyball dans une région en Suisse et pour faciliter mon travail, j'aurais besoin d'un grand coup de main pour créer des macros dans un fichier Excel.

    Dans le fichier joint, je vous ai mis un modèle et je vais tenter d'expliquer afin que vous compreniez au mieux ce dont j'ai besoin.

    Dans le premier onglet "Convocation" se trouve le calendrier complet (que je copie du champs "N° Match" à "Cat" à partir d'un fichier .csv). Les autres colonnes sont vides jusqu'au moment où je fais la convocation.

    Les autres onglets sont en fait le nom de chaque arbitre et dans cet onglet apparaîtra leur convocation personnalisée. Il y a en tout dans les 80 arbitres.

    Ce que j'aimerais c'est que je puisse travailler sur l'onglet "Convocation", attribuer mes arbitres et que quand je presse sur le bouton "Mise à jour des onglets" une macro fasse en sorte que dans l'onglet de chaque arbitre apparaisse tous les matchs où leur nom apparait dans le calendrier complet de l'onglet "Convocation".

    Il faudrait bien sûr que si je commet une petite faute quand j'écris le nom de l'arbitre, que cela m'indique d'une manière ou d'une autre que mon entrée n'est pas correcte car elle ne correspond pas à l'un des onglets créés.

    Voilà, j'ai expliqué ce dont j'ai besoin ... est-ce que l'un de vous pourrait m'aider à réaliser ce projet ?

    Merci d'avance pour votre aide et je vous souhaite une belle journée

    Flo
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Quels sont les éléments devant figurer sur la feuille de l'arbitre ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    tous les champs doivent apparaître

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Le code n'effectue la recopie que lorsque tous les champs sont remplis de la colonne A à la colonne O. Si ce n'est pas le cas, dis-moi quels champs sont obligatoires. A l'ouverture, une macro code des listes de validation pour les colonnes I et J. Par contre, les données ne sont recopiées que pour le nom de la colonne I. Dans le module "ThisWorkbook" :

    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
    Private Sub Workbook_Open()
        Dim Sh As Worksheet, Liste As String, Ctr As Integer
        For Each Sh In Worksheets
            If Sh.Name <> "Convocation" Then
                Liste = Liste & "," & Sh.Name
                Ctr = Ctr + 1
            End If
        Next
        Liste = Left(Liste, Len(Liste) - 1)
        With Sheets("Convocation")
            With .[I:J].Validation
                .Delete
                .Add xlValidateList, xlValidAlertInformation, _
                    Formula1:=Liste
            End With
        End With
    End Sub
    Dans le module de la feuille "Convocation" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim Ligne As Integer
        If Target.Column <> 9 Then Exit Sub
        If Application.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row, 15))) < 15 Then Exit Sub
        With Sheets(Cells(Target.Row, 9).Value)
            Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            Range(Cells(Target.Row, 1), Cells(Target.Row, 15)).Copy .Cells(Ligne, 1)
        End With
    End Sub
    Regarde le classeur joint. Je l'ai mis au format "xls". Tu peux l'enregistrer au format "xlsm".
    Fichiers attachés Fichiers attachés
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Salut,
    Ca ne fonctionne pas chez moi ... les onglets restent vide même quand je rajoute des choses...

    comme mon travail n'a rien de secret, je te met en pièce jointe le fichier sur lequel je travaillais jusqu'à maintenant ... quelqu'un avait fait un modèle et j'ai travaillé depuis sur ça. c'est dans ce principe là que je veux mon fichier ... sauf que là, la mise à jour se fait après chaque entrée ce qui fait que mon ordinateur rame pour chaque changement (je pense que la macro recalcule tout à chaque entrée ??!)... je dois parfois attendre passé une minute ... donc pas possible ..
    (si tu veux tester le fichier joint n'oublie pas de presser le bouton "mise à jour des listes ..." à l'ouverture sinon le fichier plantera.

    Je récapitule ce que j'aimerais si possible avoir ....

    Tout comme dans le fichier joint mais que la mise à jour se fasse qu'en pressant sur un bouton "Mise à jour"

    Et après les colonnes Arb1 et Arb2 j'aimerais encore rajouter les colonnes Juge1, Juge2, Juge3, Juge4 et Coach (la colonne arb3/coach qu'il y a actuellement n'a plus lieu d'être)
    Dans l'onglet personnalisé de chaque arbitre doit apparaître tous les champs.
    Exemple si un arbitre est convoqué comme Juge1, toutes les autres colonnes doivent également apparaître ... il pourra ainsi voir avec quel autre arbitre/juge/coach il va officier lors de ce match.
    Je ne sais pas si je suis très clair ?
    Ensuite quand je crée un nouvel onglet pour un nouvel arbitre (des nouveaux arbitres commencent chaque année), que j'ai juste rajouter l'onglet à son nom pour que je puisse l'utiliser directement dans l'onglet de convocation où il y a tous les matchs (actuellement lorsque je crée un nouvel onglet pour un arbitre, je dois aller presser sur le bouton "mise à jour des listes..." si je dois continue d'aller presser un bouton ce n'est pas un soucis)
    Je suis dispo sur skype ou msn si tu souhaites plus d'informations ?

    En tout cas merci de prendre le temps de m'aider :-)

    Bonne soirée
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Désolé, Excel me déconseille d' ouvrir ton classeur.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    oui chez moi aussi ... je ne sais pas pourquoi ... je met continuer et tout se passe normalement

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Oui, mais je ne veux pas prendre ce risque.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Oui bien sur je comprends ....

    Je vous envoie le code apparaissant dans Visual Basic... (j'espère que je n'oublierai rien car je ne connais pas du tout ce domaine).

    Dans Modules il y 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
    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
    Sub MAJ_Liste()
     
    Dim i As Integer
    Dim Nom As String
     
    For i = 2 To Sheets.Count - 1
        Nom = Nom & Sheets(i).Name & ","
    Next i
     
    Nom = Nom & Sheets(Sheets.Count).Name
        Range("i:i").Validation.Delete
        Range("i2:i1000").Validation _
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=Nom
     
        Range("j:j").Validation.Delete
        Range("j2:j1000").Validation _
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=Nom
     
        Range("k:k").Validation.Delete
        Range("k2:k1000").Validation _
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=Nom
     
    End Sub
     
     
    Sub Envoi_par_arbitre()
    Dim R As Range
    Dim i As Integer
    Dim j As Integer
     
    For i = 2 To Sheets.Count
    Sheets(i).Range("a2:k1000").ClearContents
    Next
     
     
    For Each R In Range("i2:k1000")
            If R.Value <> 0 Then
                R.EntireRow.Copy (Sheets(R.Value).Range("A65536").End(xlUp).Offset(1, 0))
            End If
    Next
     
    End Sub

    Dans Feuil 1(qui est l'onglet convocation) il y a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    If Target.Row > 1 Then Call Envoi_par_arbitre
     
    End Sub
    Ensuite il y a une feuille par arbitre et elles sont toutes vides. Il y a également une feuille "ThisWorkBook" qui est elle aussi vide.

    Je vous remet le fichier sans les macros. (il n'y a plus de message d'erreur par contre il me demande quand même d'activer le contenu)
    Fichiers attachés Fichiers attachés

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    J'ai ajouté les juges 1 à 4 et une colonne Coach en colonnes K à O. Il faut supprimer la macro de la feuille "Calendrier des matchs". Rattache la macro "Envoi_par_arbitre" à un bouton. Je l'ai modifiée :

    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
    Sub Envoi_par_arbitre()
    Dim R As Range
    Dim i As Integer
    Dim j As Integer
     
    For i = 2 To Sheets.Count
        Sheets(i).Range("a2:k1000").Clear
    Next
    With Sheets("Calendrier des matchs")
        For Each R In .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp))
            R.EntireRow.Copy
            For i = 9 To 15
                If .Cells(R.Row, i) <> "" Then
                    R.EntireRow.Copy Sheets(.Cells(R.Row, i).Value).Range("A65536").End(xlUp).Offset(1, 0)
                End If
            Next i
        Next
    End With
     
     
    End Sub
    Je n'ai pas le temps d'automatiser l'ajout d'une feuille arbitre. Il faudra que tu continues de presser le bouton...
    Le classeur est en PJ, en espérant que tu pourras l'ouvrir.
    Fichiers attachés Fichiers attachés
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/12/2012, 11h31
  2. [XL-2000] Aide pour création d'une macro complexe
    Par dybmans dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/10/2010, 12h38
  3. [XL-2007] Aide à la création d'une macro
    Par Vishnou dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/10/2010, 15h15
  4. Création d'une macro dans excel
    Par shawn69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2010, 10h13
  5. Réponses: 2
    Dernier message: 22/07/2009, 22h36

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