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 :

Participation de l'utilisateur lors du code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Par défaut Participation de l'utilisateur lors du code
    Bonjour à tous,

    Je travaille sur la consolidation d'un certain nombre de fichiers. La forme de chaque fichier est prédéfinie à l'avance selon une maquette. Malheureusement certains fichiers arrivent avec des colonnes rajoutées et du coup, ça compromet la bonne consolidation des données. Pour y remedier, j'ai mis en place ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ColumnCount = ActiveSheet.Range("A9").End(xlToRight).Column
    If ColumnCount > 41 Then
    strReponse = MsgBox("La maquette de reporting doit contenir 41 colonnes. Ce fichier en comporte " & ColumnCount & _
    ". Vous devez supprimer " & ColumnCount - 41 & " colonne(s). Voulez-vous la (les) supprimer?", vbYesNo)
        If strReponse = vbYes Then
        strSaisi = InputBox("Indiquez les colonnes supplémentaires! Par exemple pour la colonne A, tapez A:A; pour les colonnes A et C à E, tapez A:A, C:E")
        strJunk = colonnes(strSaisi)
        ElseIf strReponse = vbNo Then
        GoTo strFin
        End If
    End If
    Toutefois je trouve l'exercice peu ergonomique et je voudrais mettre en place quelque chose de plus simple pour l'utilisateur (et plus compliqué à faire pour moi ). J'aimerais donc que suite au message d'alerte, l'utilisateur puisse visualiser le tableau et juste cliquer sur une cellule (qui enlevera toute la colonne mais ça je sais le faire!) et ainsi de suite jusqu'à ce que l'ordre soit retabli! C'est donc le passage par utilisateur-clic de souris qui me pose problème (j'sais pas faire et au niveau recherches j'ai pas capté grand chose!)

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Un truc m'échappe : pourquoi autorises-tu ton utilisateur à ajouter des colonnes à ton fichier ?

    Soit il ne peut pas et doit utiliser ta maquette
    Soit il peut mais alors après la 41 colonnes. Les 41 colonnes doivent être celles de ta maquette.

    Si ce que je t'écris te parle, va faire un tour du côté du menu Tools - Protect worksheet.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Par défaut
    C'est là tout le problème. Ceux qui rajoutent des colonnes supplémentaires sont les fournisseurs, en l'occurrence des utilisateurs externes et bien qu'ils aient des consignes, ils ne les respectent pas toujours Le verrouillage de la feuille ou des cellules ne dépend pas de moi et de toute façon, ça ne les empêche pas de copier le tableau et de le reproduire comme ils veulent. Donc je cherche des solutions pour nous en interne. Mais est-ce que ce que je souhaite faire est déjà possible?

  4. #4
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    C'est probablement faisable; évidemment, mais peu pratique comme tu l'indiques d'ailleurs.

    Est-ce qu'il y a une première ligne dans ton fichier avec des noms de champs ? Si oui, tu pourrais récupérer le nom des champs et s'il n'est pas parmi tes 41 autorisés, tu skippes la colonne lors de ton importation.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Par défaut
    Oui Christophe,

    J'ai déjà pensé à cette solution mais le problème c'est que certains en-têtes se "doublent". Par exemple, il y a des notions comme client, donneur d'ordre, bénéficiare, etc. qui constituent un première en-tête et en dessous j'ai mes 41 colonnes avec des champs qui peuvent avoir la même appellation. Il faudrait donc que je fasse une double reconnaissance donc? sur tel champ, telle et telle colonnes sont autorisées, sur un autre-telle et telle...? J'avais tenté de faire quelque chose du genre sans prendre en considération les champs primaires, avec dim myarray(x,y,z) mais évidemment à cause des doublons ça posait problème...Peut être devrais-je faire un contrôle sur chaque champs? Mais encore une fois je vois pas comment je peux le faire?

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    et faire une maquette qui prend toutes ces possiblités en compte (aprés tout, si les gens l'écrivent c'est peut etre qu'ils en ont besoin, ) et ne garder que les colonnes existante dans le fichier. ou prévoirs tes 41 colonne et ne les remplir que si elles existe toujour dans le fichier a importer, mais garder un volant de 2 ou trois colonne "divers" pour prendre en compte ces ajouts
    ex si un client a rajouter une colonne délais, tu la conserve, et si un autre a ajouter volume de l'expedition, tu la place au même endroit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. préciser utilisateur lors d'un montage
    Par julien.63 dans le forum Ubuntu
    Réponses: 7
    Dernier message: 14/10/2007, 09h32
  2. Réponses: 2
    Dernier message: 20/08/2007, 10h34
  3. Réponses: 7
    Dernier message: 20/07/2007, 15h42
  4. Changer l'utilisateur lors de l'execution d'un script de démarrage
    Par kserradell dans le forum Administration système
    Réponses: 2
    Dernier message: 27/09/2006, 17h35

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