Problème vba

Résolu
Akatsucki Messages postés 94 Statut Membre -  
Akatsucki Messages postés 94 Statut Membre -
Bonjour,

Je bloque sur mon code VBA qui ne réponds pas à ma demande ...
Je cherche à actualiser mes données on ouvrant un fichier (si pas déjà ouvert), puis le refermer
OU si déjà ouvert, le fermer et le réouvrir pour mettre à jours les nouvelles donnée
Pouvais voir ou est mon erreur...



Je sais qu’une photo n’est pas très acceptable pour m’aider mais la macro ce trouve sur le fichier de mon entreprise et il est interdit d’utiliser internet

Akatsucki

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    le code ne se comporte pas comme tu le souhaites?
    que fait-il?
    il n'a jamais fonctionné?
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      tu as bien
      option explicit
      en début de module?
      merci de montrer ton code complet.
      0
    2. Akatsucki Messages postés 94 Statut Membre
       
      Enfaite il m’actualise les données mais il me garde jamais le fichier ouvert ( pour la condition 2: si déjà ouvert alors fermer puis réouvrir ) et jai le message d’erreur ( votre fichier et déjà ouvert voulez vous le réouvrir ) que je ne veux pas qu’il s’affiche

      Non je n’ai pas Option explicit en début de module
      0
    3. Akatsucki Messages postés 94 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Oui je n’ai toujours pas résolu mon soucis depuis ce temps là... j’avais arrêté mes recherches

      Voici mon code : (J’ai taper à la main lol )

       Sub actualité 
      
      Application.screenupdating = false
      Application.enableevents = false
      
      Dim classeur as worbook, chemin as string, gardeouvert as boolean
      
      Select case thisworkbook.sheets("ACCUEIL").range("k20")
      Case "poste 1"
      Chemin = "Q:\deptprod\confection bu\production\commun conf\programme P1 pour P2.xlsm"
      
      Case "poste 2"
      Chemin = "Q:\deptprod\confection bu\production\commun conf\programme P2 pour P3.xlsm"
      
      Case "poste 3"
      Chemin = "Q:\deptprod\confection bu\production\commun conf\programme P3 pour P1.xlsm"
      
      End select 
      
      'Si classeur ouvert, alors fermer puis reouvrir ( pblm msg erreur fichier déjà ouvert ??
      
      If classeurouvert then
          Classeurouvert.close savechanges:= false
          Gardeouvert = true
      Else 
          Gardeouvert = false
      
      End if 
      
      'Si classeur fermé, alors ouvrir puis refermer (sans sauvegarde)
      
      Set classeur = workbooks.open(filename:=chemin, readonly:=1, updatelinks:=0)
      Thisworkbook.refreshall
      
      If not gardeouvert then 
                Classeur.close savechanges:= false
      
      End if 
      
      Application.screenupdating = true
      Application.enableevents = true
      
      End sub
      
      Private function dejaouvert (chemin)
      Dim wb as workbook 
      For each wb un workbooks
      If wb.fullname = chemin then 
      Set dejaouvert = wb
      
      Exit function 
      End if
      
      Next wb
      Classeurouvert = false
      End function 
      
      
      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Akatsucki Messages postés 94 Statut Membre
       
      je ne vois pas trop comment ce code pourrait fonctionner.
      s'il s'agit du même problème qu'avant, plutôt que de recommencer avec ce nouveau code, je suggère de continuer avec l'ancien code, que me semble plus prometteur.
      0
  2. Akatsucki Messages postés 94 Statut Membre
     
    J’ai de nouveau le debogage ligne 11 de ton code ...
    T’es sur d’avoir le même code que moi car vbCrLf ça veut dire quoi ??
    0
    1. Akatsucki Messages postés 94 Statut Membre
       
      Est ce que la function doit ce mettre en début de module ou en fin (Comme j’ai moi)

      Peu être que c’est cela le problème ??
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      quel message d'erreur avant le debogage?
      vbCrLf, c'est un saut de ligne.
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Akatsucki Messages postés 94 Statut Membre
       
      la fonction peut-être n'importe où dans le module.
      0
    4. Akatsucki Messages postés 94 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Je ressaye après ou boulot et je te renvoie le code comme moi je l’ai écris avec ton ancien code
      0
    5. Akatsucki Messages postés 94 Statut Membre > Akatsucki Messages postés 94 Statut Membre
       
      Alors ça fonctionne pour trouvé les erreurs, mais ça me donne debogage

      Erreur d’exécution 91
      Variable objet ou variable de bloc with non définie

      0