Erreur de compatibilité

Bonjour à tous,

J'ai des erreurs de compatibilités entre excel 2019 et excel 2010

Je cherche donc l'équivalent de cette formule :

Range("A" & Rows.Count).End(xlUp).Row

Sur Excel 2010 car écris de cette façon il m'annonce une erreur d'objet

En dessous un exemple d'application de pourquoi je cherche un équivalent

' Boucle sur le nombre de ligne du paint report

For X = 1 To OS.Range("A" & Rows.Count).End(xlUp).Row

'Range("A").End(xlDown).Row
'Range("A", Selection.End(xlDown)).Cells.Count
'Range("A" & Rows.Count).End(xlUp).Row
'Cells(Rows.Count, 1).End(xlUp).Row

' valeur de la colonne F sur la ligne X

' On inclut le nom du fichier dans la base de données Excel

  OS.Range("F" & X) = NomFichier

'Permet de récupérer seulement la partie du nom intéressant

  OS.Range("F" & X) = Left(NomFichier, 3)

' Passage prochaine cellule

Next X

Bien cordialement,

Charlie

Bonjour,

Désolé mauvais commentaire ...

ric

Bonjour,

Que ce soit 2010 ou 2019, cette instruction reste valable...

Vérifie peut-être dans ton PC utilisant 2010 qu'il n'y a pas d'erreur "Manquant" dans Outils/Références sous VBE

Peut-être?

Bonjour à tous,

Au moment de l'exécution si la feuille représentée par "OS" n'est pas la feuille active ...

Peut-être ainsi : For X = 1 To OS.Range("A" & OS.Rows.Count).End(xlUp).Row

ric

Merci Ric, ta méthode à fonctionné !

Je trouve ça bizarre qu'il le prenne en compte sur excel 2019 mais pas sur excel 2010.

J'ai une autre erreur de compatibilité de type 13.

Quand je sors ma boucle de copie colle de fichier un à un
Que tu peux voir ici.

7code1.txt (8.37 Ko)

Edit modo : code trop long supprimé et mis dans un fichier txt

Je remplace ensuite une succession de point par des virgules comme ceci :

' Remplacement des points par des virgules.

' Déclaration des variables

  Dim W As Long

' Remplacement des points par des virgules

' Boucle de 1 à la derniére cellule non vide

For W = 2 To Range("E" & Rows.Count).End(xlUp).Row

' Remplacement de la valeur sur le colonne X

  Range("E" & W) = Replace(Range("E" & W), ".", ",") * 1

' Passage prochaine cellule

Next W

A ce moment il me met une incompatibilité de type 13 que je n'arrive pas à comprendre.

Car la déclaration de variable reste la même que celle précédemment.

Si vous avez des idées je suis preneur ?

En vous remerciant.

Bien cordialement,

Charlie

bonjour, à quelle ligne exacte ?

Bonjour BsAlv,

For W = 2 To Range("E" & Rows.Count).End(xlUp).Row

Cette ligne exactement, si je ne dis pas de bêtise ça viens de la déclaration de la variable W.

J'attends le retour de mon collègue car c'est lui qui a version excel 2010.

Bonjour à tous,

"Range" fonctionne sur la feuille active ... je suggère d'ajouter la référence à la feuille devant "Range ..." pour tester ...

Aussi ... tente d'éliminer les "Select" ...

Cells.Select
Selection.Delete Shift:=xlUp

'' devrait être
Cells.Delete Shift:=xlUp

'  ###################
OS.Cells.Select
Selection.Font.Name = "Calibri"
Selection.Font.Size = 11

''devrait être
OS.Cells.Font.Name = "Calibri"
OS.Cells.Font.Size = 11

ric

Bonjour Ric,

Au départ le code fonctionne sur la feuille active.

Il n'y a donc pas besoin de remplacer cette partie ci.

C'est sur la partie de remplacement des points par des virgules que j'ai une erreur de compatibilité..

Qui est également sur la feuille active de mon code.

PS : Tu m'as donné une idée !

Bonjour à tous,

Je reviens vers vous car je n'arrive pas à me faire tourner mon code sur excel 2010 alors que sur excel 2019 il tourne parfaitement.

Je n'ai pas excel 2010 et n'arrive pas à trouver une quelconque version viable sur le web.

Les tests sur excel 2010 sont donc fait à distance avec un de mes collègues qui n'a jamais fait de VBA.

Ce qui nous fait perdre pas mal de temps à tout les deux.

Je viens donc vers vous en espérant que quelqu'un arrivera à le faire tourner sur excel 2010.

En vous remerciant,

Bien cordialement,

Charlie

Edit modo : code trop long (supprimé) et ne sert à rien s'il est présent dans les fichiers

Bonjour Gonzalelo, le fil, le forum,

Je n'ai pas accès à Excel 2010 afin de tester ton code ...

Mais je trouve étrange que des commandes aussi simple que Range("A" & Rows.Count).End(xlUp).Row ne fonctionne pas sur Excel2010 ... je crois même que ça fonctionne sous Excel2003...

Tes fichiers sont localisés sur "OneDrive" ... dans le code les chemins sont écrits à la dure ... ces chemins sont exactement les mêmes chez ton collège ? Même compte Windows ? Exemple : "C:\Users\charl\OneDrive ........."

Ce que je ferais : je créerais un dossier genre : C:\Tests\  et y inclurais une copie des sous-dossiers et une copie les différents fichiers ... Puis, je corrigerais les macros afin que les chemins soient les nouveaux ... j'effectuerais quelques essais afin de m'assurer que tout fonctionne bien ...

Ensuite, en copiant le dossier "Tests", sur le disque du collègue à la racine du C:\ afin d'avoir parfaitement la même structure ... pour voir si les bogues surviennent encore ...

Un autre renseignement que l'on n’a pas ... ta version de Excel 2019 et probablement une version 64 bits ... Qu'en est-il de la version 2010 servant aux tests ? ... Quoi que cela ne devrait pas avoir d'incidence avec une commande simple tel : Range("A" & Rows.Count).End(xlUp).Row

En examinant ton code, avec niveau de connaissances moyens ... je ne vois rien qui puisse être incompatible Excel 2010 ...

ric

Bonsoir,

N'ayant pas eu de confirmation de la part de l'auteur...

Tu as bien fait vérifier l'objet de ma réponse de mardi dernier? (Vérification à effectuer sur le PC utilisant Excel 2010, bien sûr)

image

Peut-être?

Bonjour Gonzalelo, le fil, le forum,

Je viens de tester sur Excel 2007 ... ça fonctionne ...

C'est donc bien sur la machine qui a Excel 2010 que le problème se situe ...

@cousinhb29 ... désolé d'avoir continuer malgré ton commentaire pertinent donné dès le départ ...

ric

Bonjour cousinhb29,

Je passe le message à mes collègues.

Je n'en est pas tenue compte car il na mis aucun message d'objet manquant.. Mais bon, je vais leur passer le mots ils devraient pouvoir faire quelques choses !

Je reviens vers vous si jamais.

Un grand merci à vous!

Bien cordialement,

Charlie

Re-,

Tes collègues semblant avoir un niveau plus que moyen en VBA d'après tes commentaires, tu leur demandes :

- Ouvrir l'éditeur VBA (Appui sur Alt + F11), puis de cliquer sur "Outils/Références" :

image

ET de bien vérifier qu'aucune Référence ne commence par "MANQUANT"

Si c'est le cas, il suffit de désactiver cette référence

Peut-être?

Merci Ric, Merci cousinhn29,

Effectivement personne ne fait de VBA et j'ai commencé à découvrir les macros et VBA Il y a 3 semaines. J'apprends beaucoup ^^

Demain on regardera dans les références.

Encore Merci !

Bonjour à tous,

Il n'y à aucun fichier manquant par contre voici la version de mon collègue : "je suis en version 14.0.7268.5000 (32 bits)"

Je viens de lire ceci : "À quelques exceptions près, les macros d’un document qui fonctionnent dans la version 32 bits de l’application fonctionnent également dans la version 64 bits."

Est-ce que l'inverse est vraie?

Bien cordialement,

Charlie Gonzalez

Bonjour Gonzalelo, le fil, le forum,

Ce n'est pas tout qui est compatible de l'un à l'autre et mes connaissances à la matière sont manquantes ...

Mais je peux dire que j'ai fait fonctionner sans problème ton fichier sur "Excel 365 64 bits" et sur "Excel 2007 32 bits" ...

Le code de ton fichier est plutôt simple et il est compatible aux 2 versions ...

La version 32 bits de ton collègue a-t-elle été mise à jour avec les derniers correctifs de cette version ??

ric

Bonjour,

(vraiment désolé d'insister....)

Afin d'être sûr, et de tordre le cou à mon intuition, à quel moment tes collègues ont-ils vérifier cette absence de référence?

L'idéal serait qu'ils lancent le fichier, et au moment du Bug, ils cliquent sur "Débogage"

Ils vont ainsi entrer naturellement dans l'éditeur VBA, et c'est à ce moment-là qu'ils doivent aller dans "Outils/Références", et de vérifier l'absence de toute erreur...

Promis, après, j'arrête....

Bonjour à tous,

J'en discute avec eux et reviens vers vous !

Encore merci !

PS : On va y arriver

Rechercher des sujets similaires à "erreur compatibilite"