Masquer des colonnes qui bug dans une boucle

Résolu
pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention   -  
pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je rencontre un problème, j'ai une boucle avec ce code :

Range("M:M,O:O,R:V,AA:AG,AK:AK").EntireColumn.Hidden = True

Ce code fonctionne très bien

Mais si je récupère des lien hypertexte dans une colonne "N" celui ci bug.

Je n'arrive pas à comprendre pourquoi ?

Merci pour votre aide.

Pascal

8 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonsoir, tu veux dire que la ligne de code que tu montres ne te donne plus le résultat attendu (lequel?), ou donne un message d'erreur (lequel?) quand tu modifies le reste du code (lequel?)?
    0
  2. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonsoir yg_be,

    Oui j'ai un message d'erreur d'exec 1004 la méthode range de l'objet global a échoué.

    J'ai essayé de passer par un module et c'est pareil.

    Merci pour ton aide.

    Bonne soirée.

    Pascal
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peux-tu expliquer ce qui fait que cela marche parfois et parfois pas? que changes-tu entre les deux fois?
      tu ne montres qu'une seule ligne de code. je ne peux faire de suggestion qu'à ce propos:
      je te suggère donc de préciser de quelle feuille il s'agit, par exemple:
      dim unefeuille as worksheet
      set unefeuille  = 'ceci ou cela
      unefeuille.Range("M:M,O:O,R:V,AA:AG,AK:AK").EntireColumn.Hidden = True

      il est toujours dangereux de ne pas préciser exactement les objets, d'autant plus dangereux quand le code VBA utilise des
      Select 
      ou autre
      Activate
      , absolument à proscrire.
      0
  3. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    c'est depuis que je récupère des liens hypertexte dans la colonne "N"n°14.

    Je joins le lien du fichier.

    Merci.

    https://www.cjoint.com/c/GKqsnUoUPvX
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      tu ne m'expliques ni comment utiliser ton fichier pour avoir le problème, ni ce que tu as changé et qui fait que cela ne fonctionne plus.
      je maintiens ma suggestion: remplacer ta ligne par quelque-chose comme
      Sheets("Données commerciales").Range("M:M,O:O,R:V,AA:AG,AK:AK").EntireColumn.Hidden = True

      ou
      Worksheets(I).Range("M:M,O:O,R:V,AA:AG,AK:AK").EntireColumn.Hidden = True

      pour éviter d'avoir Range tout seul, sans préciser où.
      je suggère aussi de simplifier ton code, par exemple remplacer ceci
       Sheets("Données commerciales").Select
          Range("C6:C11").Select
          Selection.Copy
          
          ActiveWorkbook.Worksheets(I).Select
          Range("C6").Select
          ActiveSheet.Paste

      par cela
       Sheets("Données commerciales").Range("C6:C11").Copy Worksheets(I).Range("C6")
      0
  4. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    ça ne fonctionne plus depuis que je récupère par une requête les lien hypertexte et que je fais le module1.

    je fais ce code sur toutes les feuilles sauf la dernière ("Données commerciales").

    j'ai essayé Worksheets(I).Range("M:M,O:O,R:V,AA:AG,AK:AK").EntireColumn.Hidden = True

    et j'ai un message d'erreur d'éxecution 1004 erreur définie par l'application ou par l'objet.

    Pour info je clique sur le rectangle bleu en haut de la page PM Tarif_T3.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    j'ai changé tous les codes de

    Sheets("Données commerciales").Range("C6:C11").Copy Worksheets(I).Range("C6")

    mais j'ai toujours le message.

    J'ai mis une seule colonne et ça fonctionne ?

    Worksheets(I).Range("AK:AK").EntireColumn.Hidden = True
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      ton code est trop compliqué, je laisse d'autres t'assister.
      0
  7. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    je te remercie pour avoir pris du temps pour moi.

    Bonne soirée.

    Pascal
    0
  8. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    j'ai mis cela et ça fonctionne :

    Worksheets(I).Range("M:M").EntireColumn.Hidden = True
    Worksheets(I).Range("O:O").EntireColumn.Hidden = True
    Worksheets(I).Range("R:R").EntireColumn.Hidden = True
    Worksheets(I).Range("S:S").EntireColumn.Hidden = True
    Worksheets(I).Range("T:T").EntireColumn.Hidden = True
    Worksheets(I).Range("U:U").EntireColumn.Hidden = True
    Worksheets(I).Range("V:V").EntireColumn.Hidden = True
    Worksheets(I).Range("AA:AA").EntireColumn.Hidden = True
    Worksheets(I).Range("AB:AB").EntireColumn.Hidden = True
    Worksheets(I).Range("AC:AC").EntireColumn.Hidden = True
    Worksheets(I).Range("AD:AD").EntireColumn.Hidden = True
    Worksheets(I).Range("AE:AE").EntireColumn.Hidden = True
    Worksheets(I).Range("AF:AF").EntireColumn.Hidden = True
    Worksheets(I).Range("AG:AG").EntireColumn.Hidden = True
    Worksheets(I).Range("AK:AK").EntireColumn.Hidden = True

    alors que cela ne fonctionne pas, , je ne comprends rien mais bon j'ai masqué mes colonnes.

    Worksheets(I).Range("M:M,O:O,R:V,AA:AG,AK:AK").EntireColumn.Hidden = True
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      bien vu!
      0
  9. pascalou83400 Messages postés 285 Date d'inscription   Statut Membre Dernière intervention  
     
    Je remercie yg_be et Le Pivert, vous m'avez fait faire un grand bon en avant avec votre aide.

    Bonne journée.

    Pascal
    0