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 :

Trouver 1ère ligne vide


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Analyste
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Par défaut Trouver 1ère ligne vide
    Bonjour à tous,

    J'ai actuellement un fichier partagé où il peut y avoir environ une dizaine de personnes qui travaille en même temps à l'intérieur. À partir d'un Userform que l'utilisateur complète, en appuyant sur un bouton, je transpose ces réponses à la première ligne vide trouvée d'un autre onglet que j'utilise comme base de données. Cependant, lorsqu'ils sont plusieurs à appuyer en même temps sur le bouton, j'obtiens une erreur "Résolution des conflits", car le code ne semble pas assez rapidement et plus d'une personne obtiens le même numéro de ligne comme première ligne vide et à ce moment, deux personnes tentent d'écrire dans la même cellule. Voici mon code. Avez-vous une idée de comment je peux contourner ce problème?

    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
    Private Sub CommandButton2_Click()
     
    Application.ScreenUpdating = False
     
     
     
    fin = Wsh_Data.Range("A50000").End(xlUp).Row + 1
     
    Wsh_Data.Cells(fin, 1) = UserForm_Traitement1.DateTraitement1.Value
    Wsh_Data.Cells(fin, 2) = "'" & UserForm_Traitement1.NoContrat1.Value
    Wsh_Data.Cells(fin, 3) = UserForm_Traitement1.NomAssure1.Value
    Wsh_Data.Cells(fin, 4) = UserForm_Traitement1.NomUtilisateur1.Value
    Wsh_Data.Cells(fin, 5) = UserForm_Traitement1.Erreur1.Value
     
    ActiveWorkbook.Save
     
    Application.ScreenUpdating = False
     
    Unload UserForm_Traitement1
     
    Call Traitement1
     
    End Sub

  2. #2
    Expert éminent 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
    Par défaut
    Même si Excel a quelques éléments qui peuvent laisser croire qu'il sait faire du multi-utilisateurs, il est extrêmement incompétent en la matière. Ton cas en est un parfait exemple.

    Donc, quand on veut faire sérieusement un travail de base de données, on utilise un SGDB (Access, Libre Base, Open Base, etc.).

    C'est le seul conseil judicieux que je peux te donner.
    Tous les autres serait du rafistolage à la fiabilité douteuse.

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    J'adhère entièrement à l'intervention de Menhir

    Au cas de l'indisponibilité des applications SGBD dans l'organisation et si seul Excel est disponible (Dernièrement j'étais contraint dans "une grande organisation" à ne travailler que sur Excel. Eh oui), Je me suis amusé pour lire et écrire sur des classeurs fermés à l'aide de adodb

    https://silkyroad.developpez.com/VBA/ClasseursFermes/

    Connexion string oledb

    https://www.connectionstrings.com/ace-oledb-12-0/

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Analyste
    Inscrit en
    Octobre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Citation Envoyé par mercatog Voir le message
    Merci pour cette information. Cependant, ne serait-il pas possible de gérer ce cas d'erreur tel que on error goto mais adapté pour la fenêtre de "Résolution des conflits"?

  5. #5
    Expert éminent 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
    Par défaut
    Citation Envoyé par Olcor Voir le message
    Merci pour cette information. Cependant, ne serait-il pas possible de gérer ce cas d'erreur tel que "on error goto" mais adapté pour la fenêtre de "Résolution des conflits"?

    Les On Error ne serve qu'à masquer les problèmes et non à les résoudre.
    Ce n'est pas parce qu'on se met la tête dans le sable pour ne plus voir le problème que le problème disparait.

    Une dizaine de personnes travaillant simultanément sur un fichier Excel, c'est crise de nerf et nuits blanches garanties. C'est ce que me dit mon expérience.
    Tu peux penser autrement mais j'espère pour toi que comprendra que tu es dans la mauvaise voie avant d'avoir des ennuis trop sérieux.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/07/2016, 19h44
  2. [XL-2010] Rechercher la 1ère ligne vide dans une zone définie
    Par joept69 dans le forum Excel
    Réponses: 6
    Dernier message: 26/11/2015, 16h38
  3. VBA Rajout de la valeur dans la 1ère ligne vide Excel
    Par Cyril 64000 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/10/2015, 17h13
  4. [XL-2007] Selectionner 1ère ligne vide + allez à 1ère colonne vide + Coller
    Par OlivB1 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/10/2013, 14h48
  5. 1ère ligne vide dans un DBLookupComboBox
    Par gandf dans le forum C++Builder
    Réponses: 0
    Dernier message: 07/06/2009, 17h36

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