Macro incompatible avec PC

Bonjour à toutes et à tous,

J'avance dans mon classeur, et pour quelqu'un qui a commencé à toucher à Excel depuis seulement un mois, je suis plutôt fière.

Malheureusement, les macros pour les formulaire faites sur mon Mac ne fonctionnent pas sur le PC de la personne pour qui je fais ce classeur.

Je suis très déçue et j'espère qu'il y a une solution à mon problème.

J'ai déjà repéré que sur le code affiché sur le PC, certains caractères ne passent pas (notamment les accents). Mais même si je corrige ces erreurs, ça ne fonctionne toujours pas. la macro n'arrive pas à sélectionner les feuilles. J'ai également l'impression qu'il y a un problème avec la taille des colonnes qui a peut-être changé... mais je suis incapable de corriger ça pour le moment.

Si vous voyez une solution, dites-moi tout !

Bonjour

Normal les accents ne sont parfois pas dans le même sens.

Je suggère de mettre les noms de feuilles en constantes en haut des modules et d'éviter d'utiliser les accents.

Quand je copie une ligne Macro10 du module2, j'ai :

Sheets("rŽpertoire interprte").Select

Bonjour

Première règle, vous devez supprimer tous les accents et caractère spéciaux.
c'est une bonne pratique et encore plus quand vous utilisez un fichier à la fois sur MAC et PC.
Pensez toujours anglais. L'anglais ne connait pas les accents.

je vais regarder vos codes qui peuvent être simplifiés à ce que je peux voir

Quelle est votre version MAC ?

Cordialement

Merci pour ta réponse mais je ne suis pas sûre de ce que veut dire "mettre les noms des feuilles en constante". Est-ce que c'est là où j'ai entouré en orange sur ma capture ?

Une fois que j'aurai fait ce que tu m'as dit, il faudra que je refasse la macro mais d'après toi, est-ce qu'il y a également un problème de dimension des colonnes ?

capture d ecran 2022 06 01 a 10 04 51

Bonjour Dan, Je suis sur MACOS BIG SUR version 11.2.3

Merci pour votre aide !

je suis sur MACOS BIG SUR version 11.2.3

C'est la version de l'OS MAC et pas celle d'excel
en regardant vos codes, il faudrait refaire pas mal de choses.
- le but de la macro 7 par exemple est bien de mettre la ligne 19 du planning dans la feuille Issin ? Merci d'expliquer

Edit : question essentiel, c'est votre fichier original actuel ? Car votre feuille Planning contient énormément de lignes vides

Pardon, c'est la version 16.61.1 avec abonnement.

En fait, je n'y connais rien en macros. Je les ai justes enregistrées mais je n'ai pas osé touché au code...

D'ailleurs, j'ai plein de macros inutiles que je souhaiterais supprimer...

La Macro 10 permet d'enregistrer un interprète dans les feuilles "interprète" et "répertoire"

La Macro 7 permet bien de copier la ligne 19 du planning dans "ISSIN"

1/ J'ôte les protections de feuilles

2/ Dans ISSIN, j'ajoute une ligne au dessus de la ligne 19

3/ Je copie et colle les valeurs de la ligne 19 du planning dans "ISSIN"

4/ Je supprime la ligne 19 du planning

4/ Je protège la feuille

C'est à peu près la même procédure pour la macro 10 sauf que je copie sur 2 feuilles (interprètes et répertoire)

Ok merci pour l'info excel

D'ailleurs, j'ai plein de macros inutiles que je souhaiterais supprimer.

Ce serait bien de donner l'info afin de ne pas se pencher sur des codes qui ne servent pas

1. Pour déjà simplifier les noms dans votre fichier
- Allez dans le gestionnaire de noms
- sélectionnez la valeur Tableau22029311332
- cliquez sur Modifier et renommez la valeur sous un autre nom. Par exemple TabISSIN
-Faites de même avec la valeur Tableau2202931. Prenez un nom genre ceci --> TabPLANNING

2. Une fois fait dites moi ce que vous avez choisi comme nom et je vous posterai le code Macro7

Désolée, je pensais avoir supprimé ces macros mais en discutant avec vous, je me suis aperçue qu'elles étaient toujours là.

Pour faire simple, j'ai entré les noms que vous m'avez proposés.

Sur base de votre fichier posté, faites d'abord ceci :

1. Suppression lignes

- Allez dans la feuille ISSIN
- Sélectionnez les lignes A19 à J21
- Click droite puis choisir l'option Supprimer --> Lignes de tableau
Remarques :

- Lorsque vous supprimez des lignes dans un tableau au format structuré, vous devez toujours voir cette option "Lignes de tableau".
- Une fois la suppression, il ne doit vous rester visible que les titres et une ligne (couleur orange dans votre cas)

2. Code - Macro 7

remplacez votre code macro 7, par celui ci-dessous.

Sub Macro7()
' Macro7 Macro
Dim col As Byte

Feuil14.Unprotect 'feuille Issin

With Feuil14.ListObjects("TabISSIN") 'feuille Issin
    If .ListRows.Count = 0 Then
        .ListRows.Add: Lig = 1
    'Else: .ListRows.Add: lig = .ListRows.Count 'insérer à la dernière ligne
    Else: .ListRows.Add Position:=1: Lig = 1 'insérer a la 1igne 1
    End If

    For col = 1 To 10
        .DataBodyRange.Item(Lig, col) = Feuil12.Cells(19, col)
    Next col
End With

With Feuil12.ListObjects("TabPLANNING")
    .ListRows(19 - .HeaderRowRange.Row).Range.Delete
End With
End Sub

J'ai remplacé les noms de feuille par les codename. Mais de base rappelez-vous ce que je vous ai écrit avant

Merci Dan

Pour l'instant ça bloque sur cette ligne :

With Feuil14.ListObjects("TabISSIN") 'feuille Issin

J'ai pourtant changé le nom du tableau en "tabISSIN". Est-il possible que ce soit parce que je n'ai pas encore supprimé tous les accents de mon classeur ?

Vous êtes sûre de l'orthographe de TabISSIN ?
respect des majuscules et minuscules ?

Vérifiez aussi dans le gestionnaire de noms que TabIssin se rapporte bien à la feuille ISSIN et à la plage de données

edit : Autre point dans le fichier vous avez placé votre Macro dans quel module ?
Ici je vois le module 5. Mais vous avez aussi la macro6 dedans. Elle sert encore ?

C'est une erreur d'exécution 9 "l'indice est en dehors de la dimension du tableau"

J'ai bien écrit "TabISSIN", je vous renvoie le classeur au cas où...

Edit : J'ai supprimé la macro 6 dans le module 5 pour voir si ça venait de toutes ces macros inutiles, mais ça n'a rien changé.

Ok, dans mes explications vous n'avez pas fait ce que je vous ai expliqué.
Vous avez recréé deux tableaux sur base des 2 tableaux existants plutôt que modifier les noms

Donc on recommence

- Allez dans le gestionnaire de noms
- Supprimez d'abord les deux noms TagISSIN et TabPLANNING que vous avez créés

- Sélectionnez le nom "Tableau2202931" et cliquez sur le bouton MODIFIER
- Dans la rubrique Nom, remplacez "Tableau2202931" par TabPLANNING
- Cliquez sur OK

- Sélectionnez le nom "Tableau22029311332" et cliquez sur le bouton MODIFIER
- Dans la rubrique Nom, remplacez "Tableau22029311332" par TabISSIN
- Cliquez sur OK

refaites un test après

Merveilleux ! ça fonctionne ! merci :)

Pour la Macro 10, je peux l'utiliser telle qu'elle est sur un PC à partir du moment où je modifie tous les noms qui contiennent des accents ou bien il va falloir également simplifier le code comme vous l'avez fait pour la 7 ?

Pour la Macro 10, je peux l'utiliser telle qu'elle est sur un PC à partir du moment où je modifie tous les noms qui contiennent des accents ou bien il va falloir également simplifier le code comme vous l'avez fait pour la 7

Non je vais la modifier.

D'une manière générale il faut toujours supprimer les select et activate dans les codes
C'est l'enregistreur automatique qui vous met cela. C'est bien de l'utiliser au départ mais après on peut optimiser en les supprimant

Edit : par contre votre fichier contient des données confidentielles. J'ai donc supprimé tous vos fichier postés

Pouvez vous m'expliquer ce que vous voulez faire avec la macro 10.
C'est copier les données depuis la feuille Formulaire vers la feuille répertoire interprète ?

Aussi question, pourquoi laisser vous la colonne C vide dans la feuille Formulaire ?
Ce serait plus facile si vous évitiez cela

D'accord, je suis un peu perdue avec ce que vous m'avez dit dans votre dernier message et je dois absolument terminer le cours VBA pour mieux comprendre ce que vous avez fait.

Mais au moins, j'ai bien compris le problème de gestion des noms et j'ai finalement réussi à supprimer toutes les macros inutiles et à les renommer

Merci pour la suppression du fichier

Edit : Pour la Macro 10

Je voudrais

1/ Enregistrer les infos du formulaire dans le répertoire avec en plus, une "réf interprète" .

2/ Créer cette "réf interprètes" à partir du Nom en majuscule + prénom avec 1ère lettre en Majuscule + numéro de série situé en C3 feuille "interprètes".

3/ Ajouter la réf interprète dans la colonne A du tableau 17 de la feuille "interpretes" (Liste interprètes) afin que la réf interprète apparaisse dans le menu déroulant de la feuille "formulaire" (A18)

Alors si j'ai laissé la colonne C vide dans le formulaire, dans mon souvenir c'était parce que je prévoyais au départ de sélectionner les colonnes A:I pour les copier puis les coller en A:I de la feuille "interprètes". J'avais laissé la colonne C du formulaire vide car dans la feuille interprète, la colonne C devait contenir la référence Interprète que je voulais voir apparaitre ensuite dans le répertoire

en fait j'essaie de comprendre votre code.

Vous partez de la feuille Formulaire et vous mettez les données dans la feuille Interprètes mais pourquoi ?
Je me demande à quoi sert votre feuille Interpretes. Pouvez-vous expliquer ?

La feuille interprète sert à générer la référence de l'interprète en H3 et à entrer cette référence dans la colonne A "liste interprète".

Les données sont donc mises dans cette liste de la même manière que pour le planning; grâce à une macro qui fait :

1. ajouter une ligne au dessus dans le tableau17

2.. Copier / coller valeurs de H3 à A3

Les numéros de la colonne C sont un numéro attribué aux interprètes pour générer la réf interprète constituée du nom en majuscule + prénom avec 1ère lettre en majuscule + N°en G3 (G3=C3)

Rechercher des sujets similaires à "macro incompatible"