La méthode Range de l'objet _Global a échoué sur fichier xls

Pour testez, enregistrez une copie de ce fichier au format xlx (Excel 2003)

Bonjour tout le monde

Tout d'abord, je tiens à précisez que les topics traitant de ce sujet ne m'ont pas apporté de solution (ou alors je suis totalement passé à côté ; dans ce cas toutes mes excuses)

Comme dit dans ma présentation, j'ai toujours réussi à avoir une réponse à mes questions en cherchant à droite et à gauche dans vos colonnes.

Toutefois, cette fois-ci, je suis confronté à un "os".

Pour faire très court, j'ai récupéré une macro que je suis en train d'optimisé.

Cette partie "optimisée" fonctionne bien jusqu'à il y a quelques jours ou je me suis rendu compte que, suivant l'extension " xls" ou xlxs",

Avec le fichier xls : j'ai l'arret

Avec le fichier xlxs : tout va bien.

La solution de facilité serait d'avoir le fichier testé au format Excel 2013, mais je n'ai pas la maîtrise lors de la création de ce fichier (suivant la machine, il est généré / enregistré au format Excel 2003.

Toute piste / aide serait, vous vous en doutez, bienvenue

Bonjour,

   Cellule = "ZZ" & K
   Cellule_Next = "ZZ" & K + 1
   Cellule_Previous = "ZZ" & K - 1
   ' on determin changement colonne pour chgt boite
   DernColonne = Range(Cellule).End(xlToLeft).Column
   

excel 2003 n'a que 65536 lignes x 256 colonnes, il n'aime pas trop ton ZZ

Pour avoir la dernière colonne utilisée qq soit le format :

 DernColonne = Cells(K, Columns.Count).End(xlToLeft).Column

ou si ça te fait revoir trop de trucs c'est la colonne IV la dernière.

Tu n'as jamais eu envie de mettre Application.screenupdating=True au début de ton code ?

Ca reposerait les yeux et ça irait plus vite.

eric

Bonsoir eriiic

pour cette réponse rapide.

Effectivement, j'avais omis (encore une fois) cette différence entre les versions Excel

Je vais appliquer

DernColonne = Cells(K, Columns.Count).End(xlToLeft).Column

Concernant l'autre partie (Application.screenupdating), j'avais plutôt l'impression d'un ralentissement du fait que l'affichage se rafraîchi constamment (et pas franchement reposant pour les yeux)

Heuu, il fallait lire = False, désolé

Chez moi ça clignote de partout...

Arf effectivement, je n'ai pas défini du tout.

Et par défaut elle est sur "true" (il me semble)

Pour info, voici la modif :

For K = 4 To nbcells '>= ce nbcells  à remplacer par 151 afin raccourcir le temps du test : mais veillez à provoquer des erreurs sur ces lignes

   'on détermine le point de départ : pour trouver la dernière cellule non vide de la feuille active
   Sheets("Feuil1").Select
'   Cellule = "ZZ" & K
'   Cellule_Next = "ZZ" & K + 1
'   If K < nbcells Then
'    Cellule_Next = "ZZ" & K + 1
'   Else
'    Cellule_Next = Cellule
'   End If
'   If K > 4 Then
'    Cellule_Previous = "ZZ" & K - 1
'   Else
'    Cellule_Previous = Cellule
'   End If

   ' on determine changement colonne pour chgt boite
   'DernColonne = Range(Cellule).End(xlToLeft).Column
   DernColonne = Cells(K, Columns.Count).End(xlToLeft).Column
   'DernColonne_Next = Range(Cellule_Next).End(xlToLeft).Column
   If K < nbcells Then
    DernColonne_Next = Cells(K + 1, Columns.Count).End(xlToLeft).Column
   Else
    DernColonne_Next = DernColonne
   End If
   'DernColonne_Previous = Range(Cellule_Previous).End(xlToLeft).Column
   If K > 4 Then
    DernColonne_Previous = Cells(K - 1, Columns.Count).End(xlToLeft).Column
   Else
    DernColonne_Previous = DernColonne
   End If

Edit : ben v'là que j'ai une autre erreur qui n'a rien à voir .... (erreur définie par application ou par l'objet)

sur cette ligne

   'adresses = dernière cellule non vide de la ligne (variable)
   Adresse_Lyon = (Cells(K, DernColonne).Value = "  LYON") 'Or (Cells(K, DernColonne).Value = " LYON") Or (Cells(K, DernColonne).Value = "LYON")

(un peu plus bas dans la macro d'origine)

Puis-je changer le titre afin d'être dans les clou ou dois-je ouvrir un autre sujet ?

Comme c'est totalement indépendant c'est préférable de démarrer un nouveau topic, quitte à mettre son lien ici en plus.

D'autant plus que ça t'assure plus de lecteur, on regarde moins les sujets déjà avancés.

Et dans ce cas fournir le message d'erreur exact, et le fichier corrigé.

Ceci dit moi je n'ai pas d'erreur, j'ai ça :

2016 01 31 23 20 32

avec le xls ou le xlsx.

pour ces réponses.

Je vais "pousser" un peu plus loin mes investigations seul, et reviendrait au besoin..

Rechercher des sujets similaires à "methode range objet global echoue fichier xls"