Gestion des adhérents (excel2010)

Bonjour,
Je viens de m’inscrire.
En 2002, j’avais réussi à créer un fichier en VBA pour gérer les adhérents de l’association.
Depuis, j’ai perdu mon et je me suis mis au Mac.
Ayant retrouvé le listing, j’ai recréé ma base de données qui contient plusieurs feuilles de A à Z. Chacune de ces feuilles peut contenir jusqu’à 30 noms.
Mais voilà, lorsque j’exécute la macro, tout fonctionne, sauf que les feuilles qui doivent contenir 10 ou 20 noms n’en contiennent que le premier . Par dans la feuille “M”, il y a plus de 15 noms. Après l’exécution de la macro, cette n’en contient qu’un seul nom.
Cette base de données fonctionnait parfaitement sur PC la même version d’Excel.
Soit, j’envoie le fichier entier (si c’est possible), soit, je vais envoyer un à un les différents modules de ma base de données.

Merci d’avance pour l’aide !
Amosis
Message edité le 14/10/2014 à 18:17

Bonjour,

Il manque des mots un peu partout dans ton texte. Peut-être est-ce aussi le cas dans ta macro ?
L’as-tu vérifiée ?
L’as-tu exécutée pas à pas pour trouver pourquoi ça ne tourne pas correctement ?

Si tu postes un fichier, fais bien attention qu’il ne contienne pas de données personnelles ou confidentielles.
Edité le 09/10/2014 à 03:03

Bonsoir,
Merci pour ta réponse
L’exécution pas à pas ne décèle pas d’erreur manifeste.
Je voudrais qu’un autre oeil examine ce programme. C’est sûr qu’à force de rechercher l’erreur, je dois passer à côté.
Quant à la confidentialité des données, j’ai mis des noms bidons.
Une fois l’erreur trouvée, je rentrerai les vrais noms.

Cordialement,
Amosis

Soit, mais il est où ce fichier ?
Nous voudrions le voir pour essayer de t’aider. :wink:

Bonsoir Jacky67,
Encore une fois merci pour ton intérêt à ma requête.
Mon problème est que je ne vois pas la commande qui me permet de joindre le fichier à mon message
Cordialement,
Amosis

Perso, quand j’ai besoin d’échanger un petit fichier j’utilise généralement www.cjoint.com… :

  • cliquer sur “Parcourir…” et sélectionner le fichier à héberger,
  • cocher la case “4 jours”,
  • cliquer sur “Créer le lien Cjoint”,
  • une fois que le fichier a été envoyé, le lien créé s’affiche et il suffit de copier ce lien et vensuite venir le coller dans ta réponse ici-même.

Bonsoir Jacky67,
J’ai suivi tes bons conseils.
Ci-joint le lien créé.
Je ne sais pas si j’ai bien fait de cocher la cas “Privé” !!
Présentation du fichier:
L’onglet “Base”: Information relatives aux adhérents. Les données sont remplies à l’aide du bouton “Nouveau Contact”
Les onglets de “A” à “Z”: en cliquant sur le bouton “Création des pages”, les fonctions du module 1 permet de renseigner chaque y insérant les noms des adhérents par ordre alphabétique. Chaque onglet de “A” à 3z3 peut contenir jusqu’à 30 noms.
Le cartouche inséré dans dans ces onglets est formalisé dans l’onglet “Zip” (zone d’impression).

Le problème: après l’exécution du programme, on devrait voir tous les noms commençant par une même lettre dans l’onglet correspondant. Ce qui n’est pas le cas.

Merci encore une fois.
Amosis
Message edité le 11/10/2014 à 22:38

Je viens de récupérer le fichier, mais il y a plein de données confidentielles (noms, adresses, téléphone, mail), alors j’ai supprimé le lien vers ce fichier dans ton post précédent.

Je vais regarder tout ça.

Le fichier est-il celui que tu utilises réellement, ou n’est-ce qu’une copie simplifiée au niveau des macros VBA ?

Je demande cela parce qu’il y a des procédures dont le contenu est étrange, comme par exemple la procédure “Effacer” qui contient quelques lignes inutiles.

Ton problème vient du fait que les cellules sont nommées “_POSx” (x allant de 1 à 30), alors que dans les macros sont utilisés les noms “POSx”.
En mettant “_POSx” dans les macros ça pourrait marcher, s’il n’y avait pas le problème du nom de la première cellule qui elle s’appelle bien “POS0” dans les feuilles…

Il faut donner le même format de nom à toutes ces cellules (soit “POSx”, soit “_POSx”) et utiliser ce format de nom dans les macros.

Si tu veux tout appeler “POSx” il faut renommer les 30 cellules de chaque feuille de “A” à “Z”.
Si tu veux tout appeler “_POSx” il faut renommer la cellule “POS0” de chaque feuille de “A” à “Z”, et modifier les macros en conséquence.
Edité le 11/10/2014 à 23:36

Bonjour Jacky67,
Je suis un autodidacte en VBA. Cela explique qu’il y ait des lignes de code qui semblent superflues.
Quant aux noms “POSX”, depuis que j’ai basculé en Excel2010 que le nom “_POSX” m’est imposé.
A chaque fois que j’ai voulu créer tous les noms en “POSX”, VBA m’impose “POSX". Seul le nom “POS0” est créé sans difficulté. La suite des noms n’est possible qu’en précédant chaque nom d’un "”.

Merci encore !
Amosis

J’ai découvert Excel de la même façon, et je suppose que comme moi quand tu ne sais pas faire une chose en VBA tu utilises l’enregistreur de macros et que tu vas ensuite voir le code ainsi créé.
Mais ce code contient toutes les manipulations effectuées et donc souvent des lignes superflues.

Effectivement, je n’avais pas remarqué ce problème car quand j’ai détecté le problème de dénomination des cellules, j’ai modifié le nom “POS0” en “_POS0”, mais pas l’inverse.
Il semble que ça vienne du fait que les noms POS1 à POS30 soient déjà utilisés, mais je ne vois pas où. Ca dépasse mes compétences… :frowning:

Le plus simple actuellement est donc de modifier les noms “POS0” en “_POS0” et de modifier les macros en conséquence. :wink:

As-tu encore besoin d’un petit coup de pouce, ou ce problème est-il résolu pour toi ?
Edité le 12/10/2014 à 17:17

Bonjour Jacky67,
Merci pour ta réponse.
J’étais dans le jardin pour terminer une bricole.
Mon affaire ne se passe pas comme je veux. J’ai donc renommé tous les “POS0” en “_POS0” dans chacun des onglets de A à Z.
Lorsque je moisie le nom dans l’onglet “A”, tout va bien. Je modifie le nom dans l’onglet “B”, puis je reviens sur “A” pour s’assurer que j’ai bien “_POS0” en C1. Surprise, c’est “POS0” qui s’affiche !!.
Je suis en train de parcourir toutes les fonctions dans "Insertion/Nom.
Voilà où j’en suis.
Amosis

Bonjour Jacky67,
J’ai encore besoin de ton aide.
Depuis notre dernier échange, j’ai supprimé tous les onglets de “A” à “Z” et tous les “POSX”
J’ai redéfini les “POSX”, puis les onglets.
Ci-joint la procédure où ça coince. L’exécution pas à pas fait apparaître une erreur à la ligne en gras:


Sub Bouton1_QuandClic()
    Dim Pnom, pPre, pAdr, pComp, pCp, pVille, pTel, pPor, pFax, pMail, pAdh
    Dim zn As Range
    Dim sel As Range
    Dim n As Integer
    Dim reponse
    
    reponse = MsgBox("Attention, seules les adresses de cette page seront conservées ! Voulez-vous continuer ?", _
    vbYesNo + vbQuestion + vbDefaultButton1, "Génération des Données Alphanumériques")
    
    If reponse = vbYes Then
        Effacer
        [DEBNOM].Select
        Selection.CurrentRegion.Select
        For Each zn In Selection
            Sheets("Zip").Activate
        
            If zn.Column = 1 And zn.Row <> 2 Then
                [Vnom] = zn.Value & " " & zn.Offset(0, 1).Value
                [VAdresse] = zn.Offset(0, 2).Value
                [VComp] = zn.Offset(0, 3).Value
                [Vcpville] = zn.Offset(0, 4).Value & " " & zn.Offset(0, 5).Value
                [Vtel] = zn.Offset(0, 6).Value
                [Vpor] = zn.Offset(0, 7).Value
                [Vfax] = zn.Offset(0, 8).Value
                [Vmail] = zn.Offset(0, 9).Value
                [Vadhesion] = zn.Offset(0, 10).Value
            
                n = GetPos([Lettre1].Value)
                Sheets("Zip").Activate
                Range("B1:E6").Select
                Selection.Copy
                Sheets([Lettre1].Value).Activate
                Range("POS" & n).Select 'Code erreur exécution 1004
                ActiveSheet.Paste
                Range("D1").Select
                Application.CutCopyMode = False
            End If
        Next
    End If
    Sheets("Base").Activate
    Range("A1").Select
End Sub

Message edité le 14/10/2014 à 01:08

Oui, c’est ce que je t’ai dit plus haut : il faut changer les “POS” en “_POS” dans les macros.

Mais pour que ça fonctionne aussi avec les POS0, il faut modifier le nom des POS0 en _POS0 :

  • aller dans l’onglet “Formules”,
  • sélectionner “Gestionnaire de noms”,
  • sélectionner le premier “POS0” de la liste,
  • cliquer sur le bouton “Modifier”,
  • insérer un “_” devant “POS0” pour qu’il devienne “_POS0”,
  • valider en cliquant sur le bouton “OK”.

Recommencer jusqu’à ce qu’il n’y ait plus aucun “POS0”.
Ne pas oublier de sauvegarder le fichier avant de le fermer… :wink:

Dans les macros, changer tous les “POS” en “_POS” :

  • aller dans une macro,

  • activer la combinaison de touches + ,

  • dans le champ “Rechercher”, saisir “POS”,

  • dans le champ “Remplacer par”, saisir “_POS”,

  • sélectionner “Projet en cours”,

  • cocher “Mot entier”,

  • cliquer sur “Remplacer tout”.

  • activer la combinaison de touches + ,

  • dans le champ “Rechercher”, saisir “[POS”,

  • dans le champ “Remplacer par”, saisir “[_POS”,

  • sélectionner “Projet en cours”,

  • cocher “Mot entier”,

  • cliquer sur “Remplacer tout”.

Bonjour Jacky67,

J’avais la solution sous les yeux après ton avant dernier message.
Mais j’ai manqué de rigueur dans la lecture de ce message.
J’avais bien renommé tous les “POS0” en “_POS0” de même que “POSX” en “_POSX”.
Il me suffisait de les changer dans le module 1.

Ma base données est fonctionnelle
J’apprécie ta patience et ta régularité. Et surtout, j’apprécie le temps que tu m’as consacré.
Avec tous mes remerciements !

Cordialement,
Amosis

Content pour toi si ton problème est résolu. Ce fut un plaisir. :slight_smile:

:hello:


Au fait, ça fonctionne aussi pour la feuille "Z" ???

Il me semble qu’elle n’était pas prise en compte dans la macro qui vide les feuilles “A” à… “Y” (au lieu de “Z”).

Bonjour Jacky67,
Oui, ça fonctionne aussi pour les feuilles “Z”. J’ai 8 noms commençant par “Z” parmi les adhérents de l’association.
J’avais trouvé cette subtilité en fouinant sur le Net (en anglais).
Encore une fois, merci de tout coeur ! :slight_smile:
Bonne journée !
Amosis

De rien.

Bonne journée à toi !
:hello: