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 :

Problème avec VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2024
    Messages : 3
    Par défaut Problème avec VBA
    Bonjour à tous,

    Je suis nouveau sur le forum et ai grand besoin de votre aide.
    Je suis interne à l'hôpital et on surveille tous les cas d'infections du sang acquises à l'hôpital grâce à des fiches qu'on complète à la main puis au format CSV.
    Afin de gagner du temps et d'éviter des erreurs de saisies, j'ai fait un fichier avec une fiche dans la feuille "Formulaire" (cf. PJ) qu'on complète avec des listes déroulantes.
    Toutes les parties sont codées donc j'ai fait d'une part des listes déroulantes avec des codes (comme "1" ou "C1" etc) et d'autres part des listes où lorsqu'on sélectionne une réponse, cela se remplace automatiquement par le code approprié, par exemple si on sélectionne la réanimation médicale adulte en D5, cela se remplace automatique par "AD REA MED" grâce à des tableaux. Idem pour les microorganismes.
    J'ai également fait une ListBox pour sélectionner des résistances des micro-organismes comme en D56.
    Ensuite, j'ai fait une dernière macro qui copie les infos dont j'ai besoin de la colonne D dans la colonne E puis copie-colle les infos de E dans la feuille "SPIADI" sous forme de ligne et numérote les lignes.
    Cette dernière macro ne semble pas poser de problème.

    Concernant les listes déroulantes des mes différentes macros, à chaque fois que je fermais puis ouvrais le fichier, elles disparaissent. J'ai donc triché et ajouté une macro qui ajoute à nouveau les listes déroulantes à chaque fois qu'on clique sur le bouton "Puis ICI".

    Mon problème est visiblement plutôt sur le reste du code : soit la ListBox (en D56, D59 et D61) , soit les listes déroulantes où on sélectionne quelque chose et ça le remplace par un code (D5, D55, D58 et D60). A chaque fois et je ferme puis ouvre le fichier, il y a un message d'erreur "nous avons détecter un problème avec le fichier...." puis le fichier se répare avec le message "Fonction supprimée: Validation des données dans la partie /xl/worksheets/sheet1.xml". Sur ma version d'excel (Office 365 version 2411) sela ne pose pas trop de problème. Mais sur ma version du travail (Office 2016 ou 2021 selon le poste), je perds toute la mise en forme ainsi que les boutons sur lesquels j'attribue les macros et je dois enregistrer une nouvelle version à chaque fois, refaire les boutons etc.

    J'ai donc besoin de votre aide pour corriger ces erreurs. J'ai essayé avec ChatGPT, qui a mis des commentaires un peu partout sur mon code (que j'ai laissé car c'est bien pratique !) mais il n'a pas résolu mon problème.
    SPIADI_auto_v6.xlsmSPIADI_auto_v6.xlsm
    Merci d'avance !

  2. #2
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 214
    Par défaut
    Hello,

    Concernant les listes déroulantes des mes différentes macros, à chaque fois que je fermais puis ouvrais le fichier, elles disparaissent
    Et ça ne vous a pas mis la puce à l'orteil ?

    J'ai donc triché et ajouté une macro qui ajoute à nouveau les listes déroulantes à chaque fois qu'on clique sur le bouton "Puis ICI".
    Ben oui, comme vous dites, vous avez triché et Excel n'aime pas trop qu'on triche

    Fonction supprimée: Validation des données dans la partie /xl/worksheets/sheet1.xml
    Le message me semble clair, vos listes de validation ne sont pas valide, voila pourquoi elle disparaissent

    Je ne peux pas aller plus loin, je vous invite à revoir votre code de création des listes de validation, normalement Excel attend soit des adresses de cellules soit des données séparées par des ";".

    En passant, coder en dur dans le VBA est rarement une bonne idée, il vaut mieux utiliser des feuilles/cellules de paramétrages, c'est nettement plus souple, quite à les planquer.

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Voila un coup de main pour la partie liste déroulante, je suis d'accord avec le message précédent, il faut passer par des tableaux, c'est bien plus maintenable en plus d'être 100 fois plus propre que de passer par du VBA et/ou de mettre les listes en vrac .

    Le code est assez propre cela dit, par contre, tu devrais travailler avec des tableaux, y compris pour la feuille où tu déverses les données. Ça simplifie le code VBa et plus d'être plus pratique à utiliser.

    Pour le reste, tu as le blog de Pierre fauconnier qui contient une mine d'or quand tu débutes (et des fois après aussi )
    Par exemple dans ton cas
    https://www.developpez.net/forums/bl...ers-tableau-1/
    https://www.developpez.net/forums/bl...-formulaire-2/

    Regarde ses autres billets, tu y trouveras peut-être de l'inspiration

    Autre chose, j'ai vu que dans tes listes déroulantes, certains contenus sont de la forme 1.Valeur1, 2.Valeur2, etc et qu'ensuite tu fais en sorte de supprimer cette partie numérique.
    Je serai toi, dans mes tableaux contenant les valeurs des listes déroulantes, je mettrais 2 colonnes. Une avec le nom "1.Valeur1" et en vis à vis dans la seconde colonne, la valeur que je souhaite stocker "Valeur1".
    Il te suffit ensuite de bricoler une formule (avec RechercheX par exemple) dans la colonne E, qui va chercher la valeur de la colonne 2 en fonction de la sélection contenue dans la colonne D.

    Plus globalement, attention si plusieurs personnes sont amenées à utiliser le fichier en même temps... faudra faire des tests mais c'est rarement une bonne idée.

    ++
    Qwaz
    Fichiers attachés Fichiers attachés

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2024
    Messages : 3
    Par défaut
    Merci à tous les deux pour vos réponses.
    J'ai effectivement changé le fonctionnement de mes listes déroulantes et tout fonctionne correctement.
    Normalement, on ne devrait pas être plusieurs dessus en même temps, en étant sur un réseau commun, si 2 personnes l'ouvrent, l'un des deux est en lecture seule.
    Encore merci !

Discussions similaires

  1. afficher la barre de menus complète avec vba
    Par jejestyle dans le forum Access
    Réponses: 7
    Dernier message: 07/09/2006, 18h07
  2. Utilisation de DDERequest avec VBA
    Par queenmum dans le forum Général VBA
    Réponses: 1
    Dernier message: 10/09/2005, 12h24
  3. Ouvrir un document Excel en READ ONLY (avec VBA)
    Par beegees dans le forum Access
    Réponses: 2
    Dernier message: 29/12/2004, 20h48
  4. Créer un formulaire avec VBA ?
    Par Jean Bonnisme dans le forum VBA Access
    Réponses: 3
    Dernier message: 14/10/2004, 10h40
  5. problème avec VBA
    Par Delph dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2002, 13h15

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