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 :

Aide pour un fichier de gestion de membres d'une association


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Juillet 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2016
    Messages : 51
    Points : 42
    Points
    42
    Par défaut Aide pour un fichier de gestion de membres d'une association
    Bonjour a tous,

    Débutant en programmation VBA j'essaye de créer une base de donnée excel permettant de tenir a jour les membres d'une association sportive (voir fichier joins)
    Ce fichier comporte deux boutons.
    -1 permettant de remplir mon tableau via les éléments rentré dans une boite de dialogue
    -un 2eme permettant de trier les membres.

    Le code écrit (surement très maladroitement) pour la saisie des membres ne fonctionne pas.
    Ce code a été inspiré de macro vba enregistré et que j'ai essayé de reproduire.

    Si une âme charitable peu m'aider
    merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Bonjour,

    Pas de code, pas de réponses: http://www.developpez.net/forums/d84...s-discussions/

    Le code écrit (surement très maladroitement) pour la saisie des membres ne fonctionne pas.
    Un message d'erreur?si oui lequel et a quelle ligne?
    Si non quel résultat obtiens tu?
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  3. #3
    Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Juillet 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2016
    Messages : 51
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    Le problème est que le temps pour copier les données rentrées dans ma boite de dialogue dans mon tableau prend énormément de temps et excel ne répond plus. Je dois donc fermer le programme.
    Je n'ai malheureusement pas de code erreur particulier.

    Merci d'avance pour votre aide

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Au lieu de te lancer dans la construction d'une usine à gaz, je te conseille de voir s'il n'existe pas des outils qui répondent déjà à ton besoin.
    Pour le monde associatif, il existe déjà beaucoup de choses, y compris en français et gratuits. Regarde ça :
    http://galette.eu
    http://faiteslescomptes.fr/
    http://framakey.org/Pack/Framakey-Asso
    http://guide.libreassociation.info/

    Si tu persistes dans ta voie, demande-toi si le formulaire que tu as créé apporte une réelle plus-value à la saisie des informations adhérent.
    J'ai participé à la gestion de plusieurs association et JAMAIS je n'ai ressenti de besoin d'avoir plus qu'un simple tableau pour gérer la saisie des adhérents.
    Il faut parfois prendre un peu de recul et se demander si on ne fait pas plus compliqué que nécessaire.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Juillet 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2016
    Messages : 51
    Points : 42
    Points
    42
    Par défaut
    Merci pour tes liens
    J'avoue ce fichier a aussi (je devrais dire principalement ) un but ludique
    n'ayant jamais fait de programmation j'ai découvert le VBA avec quelques macro et j'ai voulu essayer de pousser un peu

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Je suis trop jeune pour radoter mais ...
    Citation Envoyé par moi
    Pas de code, pas de réponses
    Si tu ne nous montre pas ton code (avec la balise code de préférence), on ne peut rien pour t'aider.
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  7. #7
    Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Juillet 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2016
    Messages : 51
    Points : 42
    Points
    42
    Par défaut
    Mon code

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    'bouton Ajouter boite de dialogue'
     
    Private Sub CommandButton1_Click()
    Dim L As Integer 'définition de la variable'
     
    If MsgBox("confirmer l'insertion du contact", vbYesNo, "demande de confirmation d'ajout") = vbYes Then 'affichage message de confirmation"
     
    L = Sheets("feuil1").Range("a500").End(xlUp).Row + 1 'place a la ligne 500 et remonte jusqu'a la premiére ligne vide du tableau'
    Range("A" & L - 1 & ":S" & L - 1).Copy 'copie la mise enforme de la ligne du dessus'
    Range("A" & L & ":S" & L).PasteSpecial Paste:=xlPasteAll 'mise en forme'
    Range("A" & L & ":S" & L).PasteSpecial Paste:=xlPasteFormulas 'recopie les formules de la ligne du dessus'
    Range("A" & L & ":S" & L).PasteSpecial Paste:=xlPasteAllMergingConditionalFormats 'recopie forme conditionelle de la ligne du dessus'
    Application.CutCopyMode = False 'efface le mode copy dans la feuiile excel'
     
    'Partie Coordonée'
    Range("A" & L).Value = ComboBox1 'copie le text contenu dans "Catégorie" et le colle dans la premiére case vide de la colone A du tableau'
    ComboBox1.Text = "" 'efface le text contenu dans Catégorie pour prochaine saisie'
    Range("B" & L).Value = TextBox1 'copie le text contenu dans "Nom" et le colle dans la premiére case vide de la colone B du tableau'
    TextBox1.Text = "" 'efface le text contenu dans nom pour prochaine saisie'
    Range("C" & L).Value = TextBox2 'copie le text prenom et le colle dans la cellule C du tableau'
    TextBox2.Text = "" 'efface le text contenu dans prenom pour prochaine saisie'
    Range("D" & L).Value = TextBox3 'copie la DN et le colle dans la cellule D du tableau'
    TextBox3.Text = "" 'efface le text contenu dans DN pour prochaine saisie'
    Range("E" & L).Value = TextBox4 'copie le @  et la colle dans la cellule E du tableau'
    TextBox4.Text = "" 'efface le text contenu dans @ pour prochaine saisie'
     
    'partie document'
    Range("F" & L).Value = ComboBox3 'copie le text contenu dans "photo" et le colle dans la premiére case vide de la colone f du tableau'
    ComboBox3.Text = "" 'efface le text contenu dans photo pour prochaine saisie'
    Range("G" & L).Value = ComboBox4 'copie le champs certificat medical et le colle dans la cellule G du tableau'
    ComboBox4.Text = "" 'efface le text contenu dans certif med pour prochaine saisie'
     
    'partie cotisation'
    Range("H" & L).Value = ComboBox5 'copie le champs regime et le colle dans la cellule h du tableau'
    ComboBox5.Text = "" 'efface le text contenu dans regime pour prochaine saisie'
    Range("I" & L).Value = ComboBox6 'copie le champs licence et le colle dans la cellule i du tableau'
    ComboBox6.Text = "" 'efface le text contenu dans licence pour prochaine saisie'
    Range("J" & L).Value = ComboBox7 'copie le champs cours et le colle dans la cellule j du tableau'
    ComboBox7.Text = "" 'efface le text contenu dans cours pour prochaine saisie'
     
    Range("K" & L).Value = ComboBox8 'copie le 1 er moyen de payement et le colle dans la cellule K du tableau'
    ComboBox8.Text = "" 'efface le text contenu dans montant pour prochaine saisie'
    Range("L" & L).Value = TextBox10 'copie 1er somme versée et le colle dans la cellule L du tableau'
    TextBox10.Text = "" 'efface le text contenu dans somme pour prochaine saisie'
     
    Range("M" & L).Value = ComboBox9 'copie le 2 er moyen de payement et le colle dans la cellule M du tableau'
    ComboBox9.Text = "" 'efface le text contenu dans montant pour prochaine saisie'
    Range("N" & L).Value = TextBox13 'copie 2er somme versée et le colle dans la cellule N du tableau'
    TextBox13.Text = "" 'efface le text contenu dans somme pour prochaine saisie'
     
    Range("O" & L).Value = ComboBox10 'copie le 3 er moyen de payement et le colle dans la cellule O du tableau'
    ComboBox10.Text = "" 'efface le text contenu dans montant pour prochaine saisie'
    Range("P" & L).Value = TextBox12 'copie 3er somme versée et le colle dans la cellule N du tableau'
    TextBox12.Text = "" 'efface le text contenu dans somme pour prochaine saisie'
     
    Range("Q" & L).Value = ComboBox11 'copie le 4 er moyen de payement et le colle dans la cellule Q du tableau'
    ComboBox11.Text = "" 'efface le text contenu dans montant pour prochaine saisie'
    Range("R" & L).Value = TextBox11 'copie 3er somme versée et le colle dans la cellule R du tableau'
    TextBox11.Text = "" 'efface le text contenu dans somme pour prochaine saisie'
     
     
     
    End If
     
     
    End Sub
     
     
    'bouton quitter boite de dialogue'
    Private Sub CommandButton4_Click()
    Unload Me 'ferme la boite de dialogue'
    End Sub
     
     
    'verouille le format € pour textbox10'
    Private Sub TextBox10_AfterUpdate()
    TextBox10.Value = Format(TextBox10.Value, "# ### €")
    End Sub
     
     
    'verouille le format € pour textbox11'
    Private Sub TextBox11_AfterUpdate()
    TextBox11.Value = Format(TextBox11.Value, "# ### €")
    End Sub
     
     
    'verouille le format € pour textbox12'
    Private Sub TextBox12_AfterUpdate()
    TextBox12.Value = Format(TextBox12.Value, "# ### €")
    End Sub
     
     
    'verouille le format € pour textbox13'
    Private Sub TextBox13_AfterUpdate()
    TextBox13.Value = Format(TextBox13.Value, "# ### €")
    End Sub
     
     
     
    'verrouile le format date pour la textbox3 date naissance'
    Private Sub TextBox3_Change()
    Dim Valeur As Byte
    TextBox3.MaxLength = 10 'nb max de caractere dans la textbox date'
    Valeur = Len(TextBox3)
    If Valeur = 2 Or Valeur = 5 Then TextBox3 = TextBox3 & "/"
    End Sub
     
     
     
    Private Sub UserForm_Initialize()
     
        ComboBox1.List() = Array("", "Enfant", "Adulte") 'liste pour champs "catégorie"'
        ComboBox3.List() = Array("", "Fourni", "Non fourni") 'liste pour champs "Photo"'
        ComboBox4.List() = Array("", "Fourni", "Non fourni") 'liste pour champs "Certificat médical"'
        ComboBox5.List() = Array("", "Normal", "Particulier") 'liste pour champs "Régime"'
        ComboBox6.List() = Array("", "Payé", "Débiteur") 'liste pour champs "Licence"'
        ComboBox7.List() = Array("", "Payé", "Débiteur") 'liste pour champs "cours"'
        ComboBox8.List() = Array("", "Cheque :", "Espece :") 'liste pour champs "moyen de payement"'
        ComboBox9.List() = Array("", "Cheque :", "Espece :") 'liste pour champs "moyen de payement"'
        ComboBox10.List() = Array("", "Cheque :", "Espece :") 'liste pour champs "moyen de payement"'
        ComboBox11.List() = Array("", "Cheque :", "Espece :") 'liste pour champs "moyen de payement"'
     
    End Sub

  8. #8
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Citation Envoyé par tico06 Voir le message
    Le problème est que le temps pour copier les données rentrées dans ma boite de dialogue dans mon tableau prend énormément de temps et excel ne répond plus. Je dois donc fermer le programme.
    Je n'ai malheureusement pas de code erreur particulier.
    As tu essayé de lancé la macro en mode pas à pas ( touche F8) pour voir a quel moment survient le problème?
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  9. #9
    Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Juillet 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2016
    Messages : 51
    Points : 42
    Points
    42
    Par défaut
    Halaster08 après avoir lancée mes macro en mode pas a pas le problème se situerais a ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'bouton Ajouter boite de dialogue'
    
    Private Sub CommandButton1_Click()
    Dim L As Integer 'définition de la variable'
    
    If MsgBox("confirmer l'insertion du contact", vbYesNo, "demande de confirmation d'ajout") = vbYes Then 'affichage message de confirmation"
    
    L = Sheets("feuil1").Range("a500").End(xlUp).Row + 1 'place a la ligne 500 et remonte jusqu'a la premiére ligne vide du tableau'
    Range("A" & L - 1 & ":S" & L - 1).Copy 'copie la mise enforme de la ligne du dessus'
    Range("A" & L & ":S" & L).PasteSpecial Paste:=xlPasteAll 'mise en forme'
    Range("A" & L & ":S" & L).PasteSpecial Paste:=xlPasteFormulas 'recopie les formules de la ligne du dessus'
    Range("A" & L & ":S" & L).PasteSpecial Paste:=xlPasteAllMergingConditionalFormats 'recopie forme conditionelle de la ligne du dessus'
    Application.CutCopyMode = False 'efface le mode copy dans la feuiile excel'
    Merci pour votre aide

  10. #10
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par tico06 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("A" & L - 1 & ":S" & L - 1).Copy 'copie la mise enforme de la ligne du dessus'
    Range("A" & L & ":S" & L).PasteSpecial Paste:=xlPasteAll 'mise en forme'
    Range("A" & L & ":S" & L).PasteSpecial Paste:=xlPasteFormulas 'recopie les formules de la ligne du dessus'
    Range("A" & L & ":S" & L).PasteSpecial Paste:=xlPasteAllMergingConditionalFormats 'recopie forme conditionelle de la ligne du dessus'
    Pourquoi avoir fait un PasteFormulas et xlPasteAllMergingConditionalFormats après un PasteAll ???
    C'est redondant.

    Ne serait-il pas plus simple de remplacer ces quatre lignes par un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows(L - 1).Copy Rows(L)
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  11. #11
    Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Juillet 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2016
    Messages : 51
    Points : 42
    Points
    42
    Par défaut
    Merci menhir ta modification fonctionne.
    Malheureusement j'ai toujours un problème avec le temps mis pour copier les données rentrées dans ma boite de dialogue qui prend énormément de temps et a la finalité fait planter excel.
    Si quelqu'un a d'autre idée pour aleger mon code
    Merci d'avance pour votre aide

  12. #12
    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 !

    Si base de données Access ‼ Ce sera bien plus efficace (rapide et sûr) …
    Sans compter les applications gratuites existantes !

    N'ayant jamais vu un simple UserForm prendre du temps pour mettre à jour une feuille de calculs,
    si ce n'est pas le code, il y aurait un souci dans le classeur …
    Alors repartir d"un nouveau classeur, créer un p'tit UserForm avec le code associé et tester :
    si tout va bien, en créer une copie de sauvegarde puis l'enrichir au fur & à mesure des copies de sauvegardes.
    Au final, exporter l'UserForm vers le disque dur, si le problème finit par réapparaître, sait-on jamais …

    Ta pièce jointe ayant été beaucoup affichée, ne constatant pas de retour si quelqu'un rencontre ou pas le même souci,
    peut-être est-ce ton ordinateur, teste alors ton classeur sur une autre machine …

    _________________________________________________________________________________________________________
    Je suis Paris, 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)

  13. #13
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    A moins que ton association soit les Resto du coeur ou les Franc Maçon, je doute qu'il y ait plus de quelques centaines de lignes dans ton fichier d'adhérents.
    Je ne vois pas pourquoi Excel mettrait une durée considérable à traiter un si petit nombre de ligne.

    Mais comme tu n'as pas montré le code en entier, difficile de t'en dire plus.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  14. #14
    Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    Juillet 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2016
    Messages : 51
    Points : 42
    Points
    42
    Par défaut
    Non mon fichier est très simple il comportera au max une centaine de membres
    Ci dessous le code complet lié a mon userform

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    'bouton Ajouter boite de dialogue'
     
    Private Sub CommandButton1_Click()
    Dim L As Integer 'définition de la variable'
     
    If MsgBox("confirmer l'insertion du contact", vbYesNo, "demande de confirmation d'ajout") = vbYes Then 'affichage message de confirmation"
    L = Sheets("feuil1").Range("a500").End(xlUp).Row + 1 'place a la ligne 500 et remonte jusqu'a la premiére ligne vide du tableau'
    Rows(L - 1).Copy Rows(L)
    Application.CutCopyMode = False 'efface le mode copy dans la feuiile excel'
     
    'Partie Coordonée'
    Range("A" & L).Value = ComboBox1 'copie le text contenu dans "Catégorie" et le colle dans la premiére case vide de la colone A du tableau'
    ComboBox1.Text = "" 'efface le text contenu dans Catégorie pour prochaine saisie'
    Range("B" & L).Value = TextBox1 'copie le text contenu dans "Nom" et le colle dans la premiére case vide de la colone B du tableau'
    TextBox1.Text = "" 'efface le text contenu dans nom pour prochaine saisie'
    Range("C" & L).Value = TextBox2 'copie le text prenom et le colle dans la cellule C du tableau'
    TextBox2.Text = "" 'efface le text contenu dans prenom pour prochaine saisie'
    Range("D" & L).Value = TextBox3 'copie la DN et le colle dans la cellule D du tableau'
    TextBox3.Text = "" 'efface le text contenu dans DN pour prochaine saisie'
    Range("E" & L).Value = TextBox4 'copie le @  et la colle dans la cellule E du tableau'
    TextBox4.Text = "" 'efface le text contenu dans @ pour prochaine saisie'
     
    'partie document'
    Range("F" & L).Value = ComboBox3 'copie le text contenu dans "photo" et le colle dans la premiére case vide de la colone f du tableau'
    ComboBox3.Text = "" 'efface le text contenu dans photo pour prochaine saisie'
    Range("G" & L).Value = ComboBox4 'copie le champs certificat medical et le colle dans la cellule G du tableau'
    ComboBox4.Text = "" 'efface le text contenu dans certif med pour prochaine saisie'
     
    'partie cotisation'
    Range("H" & L).Value = ComboBox5 'copie le champs regime et le colle dans la cellule h du tableau'
    ComboBox5.Text = "" 'efface le text contenu dans regime pour prochaine saisie'
    Range("I" & L).Value = ComboBox6 'copie le champs licence et le colle dans la cellule i du tableau'
    ComboBox6.Text = "" 'efface le text contenu dans licence pour prochaine saisie'
    Range("J" & L).Value = ComboBox7 'copie le champs cours et le colle dans la cellule j du tableau'
    ComboBox7.Text = "" 'efface le text contenu dans cours pour prochaine saisie'
     
    Range("K" & L).Value = ComboBox8 'copie le 1 er moyen de payement et le colle dans la cellule K du tableau'
    ComboBox8.Text = "" 'efface le text contenu dans montant pour prochaine saisie'
    Range("L" & L).Value = TextBox10 'copie 1er somme versée et le colle dans la cellule L du tableau'
    TextBox10.Text = "" 'efface le text contenu dans somme pour prochaine saisie'
     
    Range("M" & L).Value = ComboBox9 'copie le 2 er moyen de payement et le colle dans la cellule M du tableau'
    ComboBox9.Text = "" 'efface le text contenu dans montant pour prochaine saisie'
    Range("N" & L).Value = TextBox13 'copie 2er somme versée et le colle dans la cellule N du tableau'
    TextBox13.Text = "" 'efface le text contenu dans somme pour prochaine saisie'
     
    Range("O" & L).Value = ComboBox10 'copie le 3 er moyen de payement et le colle dans la cellule O du tableau'
    ComboBox10.Text = "" 'efface le text contenu dans montant pour prochaine saisie'
    Range("P" & L).Value = TextBox12 'copie 3er somme versée et le colle dans la cellule N du tableau'
    TextBox12.Text = "" 'efface le text contenu dans somme pour prochaine saisie'
     
    Range("Q" & L).Value = ComboBox11 'copie le 4 er moyen de payement et le colle dans la cellule Q du tableau'
    ComboBox11.Text = "" 'efface le text contenu dans montant pour prochaine saisie'
    Range("R" & L).Value = TextBox11 'copie 3er somme versée et le colle dans la cellule R du tableau'
    TextBox11.Text = "" 'efface le text contenu dans somme pour prochaine saisie'
     
     
     
    End If
     
     
    End Sub
     
     
    'bouton quitter boite de dialogue'
    Private Sub CommandButton4_Click()
    Unload Me 'ferme la boite de dialogue'
    End Sub
     
     
    'verouille le format € pour textbox10'
    Private Sub TextBox10_AfterUpdate()
    TextBox10.Value = Format(TextBox10.Value, "# ### €")
    End Sub
     
     
    'verouille le format € pour textbox11'
    Private Sub TextBox11_AfterUpdate()
    TextBox11.Value = Format(TextBox11.Value, "# ### €")
    End Sub
     
     
    'verouille le format € pour textbox12'
    Private Sub TextBox12_AfterUpdate()
    TextBox12.Value = Format(TextBox12.Value, "# ### €")
    End Sub
     
     
    'verouille le format € pour textbox13'
    Private Sub TextBox13_AfterUpdate()
    TextBox13.Value = Format(TextBox13.Value, "# ### €")
    End Sub
     
     
     
    'verrouile le format date pour la textbox3 date naissance'
    Private Sub TextBox3_Change()
    Dim Valeur As Byte
    TextBox3.MaxLength = 10 'nb max de caractere dans la textbox date'
    Valeur = Len(TextBox3)
    If Valeur = 2 Or Valeur = 5 Then TextBox3 = TextBox3 & "/"
    End Sub
     
     
     
    Private Sub UserForm_Initialize()
     
        ComboBox1.List() = Array("", "Enfant", "Adulte") 'liste pour champs "catégorie"'
        ComboBox3.List() = Array("", "Fourni", "Non fourni") 'liste pour champs "Photo"'
        ComboBox4.List() = Array("", "Fourni", "Non fourni") 'liste pour champs "Certificat médical"'
        ComboBox5.List() = Array("", "Normal", "Particulier") 'liste pour champs "Régime"'
        ComboBox6.List() = Array("", "Payé", "Débiteur") 'liste pour champs "Licence"'
        ComboBox7.List() = Array("", "Payé", "Débiteur") 'liste pour champs "cours"'
        ComboBox8.List() = Array("", "Cheque :", "Espece :") 'liste pour champs "moyen de payement"'
        ComboBox9.List() = Array("", "Cheque :", "Espece :") 'liste pour champs "moyen de payement"'
        ComboBox10.List() = Array("", "Cheque :", "Espece :") 'liste pour champs "moyen de payement"'
        ComboBox11.List() = Array("", "Cheque :", "Espece :") 'liste pour champs "moyen de payement"'
     
    End Sub

  15. #15
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Il n'y a aucune raison pour que la copie de données sur une ligne prenne plus d'une fraction de seconde.

    Essaye de mettre un arrêt sur ta ligne 6, de faire avancer en pas-à-pas et de voir à quel endroit ça ralentit.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  16. #16
    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




    A moins d'un code évènementiel parasitaire dans le module du classeur ou d'une feuille de calculs …
    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)

  17. #17
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    A moins d'un code évènementiel parasitaire dans le module du classeur ou d'une feuille de calculs …
    Etant donné la simplicité du code présenté ici, c'est une hypothèse plus que probable.

    Peut-être une petite macro évènementielle, type Worksheet_Change ou quelque chose comme ça.
    Ou de grosses fonctions très gourmandes comme des fonctions matricielles lourdes (mais il en faudrait vraiment beaucoup).
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [FatJar] Besoin d'aide pour définir fichier jnlp
    Par CaptainT dans le forum JWS
    Réponses: 11
    Dernier message: 24/03/2009, 14h29
  2. Aide pour architecture de solution gestion de familles
    Par skunkies dans le forum Windows Forms
    Réponses: 6
    Dernier message: 04/03/2009, 12h17
  3. Besoin d'aide pour MCD de la gestion des SAV
    Par balolo dans le forum Schéma
    Réponses: 6
    Dernier message: 07/12/2007, 16h06
  4. Aide pour renommer fichiers avec .bat
    Par bobsapp dans le forum Windows
    Réponses: 6
    Dernier message: 21/03/2007, 13h11
  5. Réponses: 2
    Dernier message: 03/03/2007, 22h30

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