Passage d'Excel 2010 vers 2016

Bonjour à tous,

Après passage d'Excel 2010 vers Excel 2016, certaines fonctions qui tournaient bien me retournent une erreur (voir copie d'écran)
Cette erreur se produit lorsque je veux remplir mon formulaire d'ajout d'adhérent dans mon tableau.
Si je repasse sur l'ordi de Madame qui a Excel 2010, tout fonctionne très bien ...

screenshot 1

Une idée ?

Est-ce qu'il y a un copier-coller de plages contenant des formules dans cette macro ?

Bonsoir Optimix,

Je ne sais plus, je regarde...

Apparemment non.

Bonjour à tous,

Je reviens sur mon problème (non résolu) sur lequel je cherche à comprendre.

Je vous joins des copies d'écran de mes affichages successifs.

screenshot 4 screenshot 3

Puis j'ai qqs secondes après le message suivant :

screenshot 2

et cliquant sur OK, tout se ferme ...

Un idée ?

Bonne soirée à vous tous, bernard17.

Bonjour,

De manière générale ce que je fais avant tout changement de version...

Avant de passer un fichier sous 2016 supprimez tous les mots de passe (Classeur, feuilles et VBA) vous les rétablirez quand vous aurez terminé le passage sous 2016

Dans VBA s'il y a une erreur, acceptez le débogage puis dans VBA, interrompez la macro.

Vous êtes toujours dans VBA, allez dans Outils > Références et décochez (soigneusement) les références déclarées manquantes.

Au besoin assurez vous en y retournant que cette référence indésirable est bien décochée.

Vous pouvez maintenant enregistrer votre classeur avec ses protections habituelles et redémarrer normalement.

Ça n'empêchera peut-être pas l'erreur automation qui pourrait être d'un autre niveau, mais sans le fichier... Par exemple un problème de complément dans le ruban Excel ? Je n'ai pas de boule de cristal !

Sinon dans la macro que vous montrez, moi j'aurais mis le End With tout à la fin et un Point avant toutes les Cells.

Mais cela peut provenir d'un tout autre problème en lien ou pas avec le point d'arrêt. Il me semble à peu près certain que le point d'arrêt provient des références manquantes.

Une autre fois au lieu d'une image mettez du texte entre les balises </> j'aurai, corrigé... Là faites un effort pour me comprendre !

A+

Bonjour galopin01,

Merci de me répondre.

Tout d'abord, une précision, je ne suis pas un pro de VBA, je m'y intéresse et suis (applique) des tutos pris sur la toile.

A la première question, il n'y a pas de mdp.

Deuxième proposition, j'accepte le débogage, mais j'ai aussitôt le message d'erreur d'automation et tout se ferme ...

Troisième proposition, quoi décocher ?

screenshot 2

Quatrième proposition, j'ai mis le End With tout à la fin et un Point avant toutes les Cells, pas de changement.

Pourquoi tout fonctionne très bien sous 2010 et pas sous 2016, là je ne comprends pas bien mais bon.

Un avis ?

Merci à vous et bon dimanche, bernard17.

Bonjour,

Disposer du fichier permettrait d'en savoir plus.

Car les explications peuvent être multiples...

S'il y a un unprotect il y a bien une ou plusieurs feuilles protégées, je pense.

A quoi fait référence cboCivilite => une combobox, une cellule... ?

Enfin, je ne suis pas un spécialiste en VBA non plus mais moi aussi j'ai appris les rudiments du VBA sur des forums/internet. Tu comprendras donc que sans Fichier difficile de t'aider.

Merci

Cdt

Merci pour la réponse, je vais vider mon fichier de ses données et n'envoyer que la page nécessaire. Je vois ça demain, ce soir, c'est trop tard pour me mettre dessus, j'ai du monde ...

Bonne soirée à tous, bernard17.

A ce stade tu peux essayer de supprimer tous tes contrôles (au moins ceux sur lequel le débogueur s'arrête) et les remplacer par des contrôles identiques même nom, même macro, mais tu ne les remplaces pas par copier/coller mais en allant les piocher dans la boite d'outils de manière à ce qu'ils se référencent bien dans la bibliothèque d'objet de ta nouvelle version...

En plus visiblement il doit s'agir de Contrôle sur des feuilles et non pas sur UserForm donc ça me semble aussi une cause potentiel de problème.

A+

Est-ce que par hasard le PC de votre femme ne serait pas en 64 bits et le vôtre en 32 bits ?

Bonjour optimix, non, tous les deux en 64 ...

Je donne le fichier partiellement enregistré avec les éléments utiles pour la vérif.

Ne pas tenir compte des autres fonctions, juste la fonction "ajouter", c'est elle qui dérange.

Essai sur l'autre ordi, ça fonctionne, sur le mien non ...

Bonne journée à tous, bernard17.

17listing-essais.zip (498.24 Ko)

Bonjour Bernard17

Dans votre feuille "RS-Liste Adhérents" vous utilisé désormais un tableau structuré, c'est très bien.

En revanche, pour trouver la dernière ligne, ce code n'est plus bon

ligne = Sheets("RS-Liste Adhérents").Range("A456541").End(xlUp).Row + 1

Car du coup vous tentez d'insérer une ligne en dessous du TS, ce qui génère le bug

Je vous conseille de lire ceci

https://www.excel-pratique.com/fr/telechargements/doc-excel/tableau-structure-no445

https://www.excel-pratique.com/fr/telechargements/doc-excel/tableau-structure-excel-no498

A+

Bonjour a tous

comme à dit BrunoM45, le code de la dernière ligne n'est plus bon

peu être que celui -ci pourrais aider

igne = Range("Tableau1").ListObject.ListColumns.Count

merci

pardon

erreur de frappe

ligne = Range("Tableau1").ListObject.ListRows.Count + 1

Bonjour Iliyes

Tu aurais pu rééditer ton post

De plus attention,
ta ligne de code créera le même problème puisque cela donne 155 pour un tableau de 154 lignes

Voir un très bon exemple fait par Galopin01 (que je salue)
https://www.excel-pratique.com/fr/telechargements/utilitaires/userform-crud-excel-no476

Quand "TData" représente le tableau

Set TData = Range("Tableau1").ListObject

il faut utiliser

Application.Max(TData.ListColumns(1).Range) + 1

A+

Bonjour BrunoM45

Tu aurais pu rééditer ton post

:-) je ne savais même pas qu'on pouvait le faire....j'y penserais une prochaine fois.

Voir un très bon exemple fait par Galopin01 (que je salue)

en se qui concerne les tableau structuré, je vais m'inspirer de ce lien de Galopin01, que je salue moi aussi!!

Quand "TData" représente le tableau

Set TData = Range("Tableau1").ListObject

il faut utiliser

Application.Max(TData.ListColumns(1).Range) + 1

habituellement j'utilisais celle que j'ai posté et qui ne m'a causé aucun soucis jusqu’à maintenant!!!!

le prochaine fichier j'utiliserais la tienne, qui me semble plus adapté

merciiiiiiiiiiiiiiiiiiiiii BrunoM45

Merci à vous deux, mais je ne comprends pas bien le 155 ... excusez-moi, je ne suis pas encore aguerri au VBA (mais je demande qu'à apprendre)

Pardon, le tableau est a 155 parce que je l'ai vidé, Il s'incrémente à chaque entrée et se trie dans l'ordre alphabétique.

Rechercher des sujets similaires à "passage 2010 2016"