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 fichier excel partagé


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Points : 50
    Points
    50
    Par défaut Problème fichier excel partagé
    Bonjour,
    Je suis sur le point de finaliser mon exécutable sur VB6, je vous demande de l'aide sur une erreur inattendue, je m'explique:
    Je dois par le biais d'une boucle supprimer une cellule à qui contient une devise (exe USD). Les cellules à supprimer se situent à partir de la colonne B, on peut donc avoir plusieurs devises, donc plusieurs colonnes de renseignés.
    Le but c'est, l'utilisateur doit sélectionner la devise à supprimer via listbox, et le programme se charge d'aller chercher la devise recherchée sur la ligne recherchée et puis la supprimer et surtout déclaer les celulles vers la gauche, Je precise que mon programme marche parfaitement sur un fichier non partagé (mystère).
    Voici le bout de 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
    Dim rg As Range
    Dim lastCol As Integer
     
    Sheets("Devises").Select
     
    Set rg = Sheets("Devises").Range("A:A").Find(selectedFund)
     
    If rg Is Nothing Then 'ne devrait pas se produire
        Exit Sub
    End If
     
    lastCol = rg.Offset(0, 200).End(xlToLeft).Column + 1
     
    'supprimer devises désirées
    i = 1
    Do While rg.Offset(0, i).Value <> ""
    If rg.Offset(0, i).Value = Form3.List1.List(List1.ListIndex) Then
        rg.Offset(0, i).Delete Shift:=xlToLeft
        End If
    i = i + 1
    Loop
    Le programme bug sur la ligne :
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rg.Offset(0, i).Delete Shift:=xlToLeft
    message d'erreur :cette commande n'est pas disponible avec un fichier partagé, avec Shift:=xlToLeft de surligné
    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Bonjour,

    Le message t'indique la cause de l'erreur. Les classeurs partagés ont une foule de limitations, Excel n'étant apparemment pas conçu pour cela.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Points : 50
    Points
    50
    Par défaut
    Bonjour Daniel,
    Le problème c'est que j'ai bâti tous mon programme sur le fait que le fichier soit partagé, tu n'as pas une astuce pour contourner ce problème ?
    Merci infiniment.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 202
    Points : 14 353
    Points
    14 353
    Par défaut
    Tu peux peut-être modifier ton appli pour supprimer une ligne entière ? Voici la liste des limitations concernant les classeurs partagés (au moins en ce qui concerne XL 2003) :

    http://office.microsoft.com/fr-fr/ex...005201080.aspx
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Salut.

    Citation Envoyé par Maxgad Voir le message
    Bonjour Daniel,
    Le problème c'est que j'ai bâti tous mon programme sur le fait que le fichier soit partagé, tu n'as pas une astuce pour contourner ce problème ?
    Merci infiniment.
    Il aurait été sage de te renseigner sur les fichiers Excel partagés avant de construire ton appli dessus. Les fichiers partagés en Excel sont, d'expérience, à bannir une fois pour toutes. Ce n'est pas le travail d'Excel de partager des données et aucun travail sérieux ne peut être entrepris sur des classeurs partagés...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Points : 50
    Points
    50
    Par défaut Module classe
    Bonjour Pierre et Daniel,
    Je crois je vais me rabattre sur une solution utilisateur unique, quand un utilisateur est sur l'appli, les autres sont avertis que l'appli est occupée.
    Pour m'y faire, j'ai récupérer un code à mettre dans un module classe VB6 mais je n'arrive pas à faire appel (Call) à cette procédure depuis ma Form1 initialize!
    Comment faire SVP ?
    Merci

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Je suppose que ton module de classe est dans ton appli VB6 et que ton form1 est également dans ton appli.

    Cela devient donc un problème VB6 et plus un problème Excel. Tu aurais donc intérêt à te tourner vers ce forum sur DVP pour trouver une solution à ton problème.

    Quoi qu'il en soit, en VB(A), tu ne peux pas appeler une procédure d'un module de classe directement. Tu dois initialiser un objet de cette classe puis appeler la méthode de l'objet que tu veux manipuler.

    Est-ce nécessaire que cette procédure soit dans un module de classe?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [XL-2003] Détection fichier excel partagé ouvert?
    Par JeanSairien dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/04/2010, 16h59
  2. [XL-2007] Macro sur Fichier Excel partage
    Par ropineau dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/06/2009, 16h25
  3. Accès à un fichier Excel partagé sur un site web
    Par castrogne dans le forum Excel
    Réponses: 2
    Dernier message: 12/02/2008, 13h42
  4. Réponses: 5
    Dernier message: 12/08/2007, 15h33
  5. Modifier fichier excel partagé sur le réseau
    Par machistador31 dans le forum Général VBA
    Réponses: 1
    Dernier message: 01/08/2007, 21h50

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