IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Discussion :

Création feuilles nommées [XL-2013]


Sujet :

Conception

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Points : 87
    Points
    87
    Par défaut Création feuilles nommées
    Bonjour à toutes et à tous,

    J'ai crée une macro me permettant de créer une grille en fonction de compétences évaluées.

    Voici ma question : Comment reproduire cette grille en autant de fois qu'il y a d'élèves ( création plusieurs feuilles ) ?
    De plus, comment faire en sorte que les feuilles portent le nom des élèves et que le nom s'affiche aussi dans une cellule précise de chaque feuille (B4) ?

    Merci d'avance.

    NOVICE72

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Salut.

    Voici une fonction qui crée une nouvelle feuille et la met à la disposition du code appelant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function CreateSheet(Name As String) As Worksheet
      Dim sh As Worksheet
     
      Set sh = Worksheets.Add()
      sh.Name = Name
      Set CreateSheet = sh
    End Function
    Pour placer le nom en cellule B4, tu utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh.range("b4").Value = sh.name
    Dissocie bien les codes, il n'est pas de la responsabilité de la fonction CreateSheet de placer son nom en B4.

    Attention: Tu aurais intérêt à gérer les erreurs éventuelles, parmi lesquelles le fait de nommer une feuille alors qu'elle existe déjà, entre autres erreurs possibles (nom de l'élève contenant des caractères non permis pour le nom des feuilles, ...)


    Cela dit

    C'est une TRES MAUVAISE organisation de classeur que de procéder avec une feuille par élève. Une règle d'or d'Excel est de ne pas mélanger les données et leur exploitation. Tu aurais grand intérêt à repenser la conception de ton classeur en fonction de sa finalité.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour,

    Comment connait-on le nombre d'élèves et leurs noms? Y a-t-il une feuille avec une liste?
    Supposons qu'en feuille Feuil1, il y a une liste des élèves en colonne A.
    Pour créer une feuille par élève, on utilisera une boucle For Each sur les cellules de la liste. La syntaxe d'une boucle For Each est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each element In ensemble
        'action
    Next element
    Dans notre cas element sera la cellule contenant le nom de l'élève, on le déclarera donc comme un Range. Ensemble est l'ensemble des cellules contenant un nom d'élève.
    Si la liste n'est pas amenée à changer, on notera tout simplement le Range de la liste, par exemple : Sheets("Feuil1").Range("A1:A25"), si on suppose qu'il y a 25 élèves. Si la liste est amenée à changer (ajout/suppression d'élève), il faudra détecter la dernière cellule non vide la la colonne A. Pour cela on utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp)
    Si on se met dans le 2ème cas, notre boucle sera donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim eleve As Range
    For Each eleve In Range(Sheets("Feuil1").Cells(1, 1), Sheets("Feuil1).Cells(Rows.Count, 1).End(xlUp))
        'action
    Next eleve
    Comment reproduire cette grille
    2 solutions :
    1. Soit la macro dont tu parles auparavant créé la grille à partir d'une feuille de calcul vierge et alors, il faut juste créer une nouvelle feuille de calcul et lancer la macro sur cette feuille de calcul. Créer une nouvelle feuille : méthode Sheets.Add
    2. Soit tu créés une feuille de calcul "Modèle" que tu copies à chaque fois que tu as besoin d'une nouvelle grille. Je préfère cette méthode. Pour copier une feuille en VBA : utilise l'enregistreur de macro quand tu fais l'opération "à la main". Indice : ce sera la méthode Worksheet.Copy.


    les feuilles portent le nom des élèves
    Ca peut dépendre de la méthode que tu utilises précédemment
    1. Méthode 1 : tu peux utiliser :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Sheets.Add.Name = "toto"
      Ceci créé une nouvelle feuille nommée toto.
    2. Méthode 2 : Après avoir copié la feuille Modèle, tu renommes cette feuille :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      Sheets("Modèle").Copy After:=Sheets(Sheets.Count)
      ActiveSheet.Name = "toto"


    le nom s'affiche aussi dans une cellule précise de chaque feuille (B4)
    Pour écrire qqc dans une cellule on utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("maFeuille").Range("A1").Value = "toto"
    Ici, j'écris toto dans la cellule A1 de la feuille nommée maFeuille

    Si on met toutes les explications bout à bout, on peut créer une méthode qui en fonction du nom de l'élève : créé une feuille avec la grille et écris le nom de l'élève en B4. Puis on appelle cette méthode dans la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub nouvelleGrille(nomEleve As String)
        Sheets("Modèle").Add.Name = nomEleve                      'créer nouvelle feuille nommée d'après le nom de l'élève
        Call methodeGrille                                                       'appeler ta méthode qui créé la grille
        Sheets(nomEleve).Range("B4").Value = nomEleve         'écrire le nom de l'élève dans la cellule B4
    End Sub
    ou (je préfère) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub nouvelleGrille(nomEleve As String)
        Sheets("Modèle").Copy After:=Sheets(Sheets.Count)     'copier feuille avec la grille
        ActiveSheet.Name = nomEleve                                     'renommer feuille en fonction du nom de l'élève
        Sheets(nomEleve).Range("B4").Value = nomEleve         'écrire le nom de l'élève dans la cellule B4
    End Sub
    Et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim eleve As Range
    For Each eleve In Range(Sheets("Feuil1").Cells(1, 1), Sheets("Feuil1).Cells(Rows.Count, 1).End(xlUp))
        Call nouvelleGrille(eleve.Value)
    Next eleve
    J'espère que tu comprends bien mes explications et que tu pourras avancer avec cela

  4. #4
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Points : 87
    Points
    87
    Par défaut
    Bonjour Pierre.
    Tout d'abord merci pour ton aide.
    Je reviens vers toi pour 2 petites questions.

    1) Où dois-je placer la liste des élèves afin que " la fonction création de feuilles " puisse aller les chercher pour les nommer ?
    2) Tu me dis que c'est une très mauvaises organisation de classeur que de procéder avec une feuille par élève. Moi je comptais créer un nouveau fichier sur lequel figure 20 feuilles pour 20 élèves ( 20 étant un exemple ). Mon autre problème sera de créer un autre fichier mais pour l'instant je me tiens à ça ( je pense me débrouiller avec l'éditeur de macro ). Parce que toi tu ferais comment ?


    Encore merci. NOVICE72

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Tout dépend de la finalité de ton classeur. Que mettras-tu comme données dans tes feuilles?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Points : 87
    Points
    87
    Par défaut
    Bonjour Riaolle,

    Juste pour te remercier de tout le travail que tu as fait pour moi.

    Je me penche dessus cet après midi et te redis.

    Encore merci.

    NOVICE72

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    C'est une TRES MAUVAISE organisation de classeur que de procéder avec une feuille par élève. Une règle d'or d'Excel est de ne pas mélanger les données et leur exploitation. Tu aurais grand intérêt à repenser la conception de ton classeur en fonction de sa finalité.
    Je suis totalement d'accord avec Pierre que je salue au passage.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Tout dépend de la finalité de ton classeur. Que mettras-tu comme données dans tes feuilles?
    Bonjour,

    Je t'explique ce que je veux faire:

    1) Lorsque ma grille est faites grâce à une première macro ( cette grille dépend de la matière enseignée donc de la personne qui l'utilise ), je souhaite la recopier en autant d'exemplaire qu'il y a d'élèves.
    2) cette grille recopiée ( CHAQUE ELEVE A SA FEUILLE ) je veux la remplir élève par élève .

    La grille est un tableau à double entrées où les colonnes correspondent au numéro de l'évaluation et les lignes aux compétences évaluées.
    Remarque : Les compétences évaluées ne sont pas toujours les mêmes,
    une compétence peut être évaluées plusieurs fois.

    Donc pour la remplir voici ce que je veux faire : ( actuellement tous les profs le font à la main...... )
    Je choisis le premier élève. Dans sa grille, pour la première colonne ( évaluation N°1 )

    Pour chaque compétence ( chaque ligne ) je remplis par une couleur ( rouge, orange, jaune ou vert ) suivant le niveau de réussite ( ou blanc lorsque non évaluée cette fois-ci ).
    En dernière colonne ( " moyenne des couleurs des évaluations déjà faites" )

    Voilà, ceci est la finalité de mon classeur. Mes données sont des couleurs.

    Remarque :
    ceci sera l'objet d'un autre travail pour que je choisisse la couleur (de chaque cellule ) via des listbox ( positionnées sur chaque cellule )

  9. #9
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 414
    Points : 16 256
    Points
    16 256
    Par défaut
    Bonjour

    Je partage tout à fait les remarques de Pierre.

    Par ailleurs utiliser seulement des couleurs n'autorisera aucune analyse à part visuelle, ni synthèse.

    La couleur doit être une représentation d'un valeur que l'on peut donc "sommer", "moyenner", ... comparer...

    Une moyenne de couleurs n'existe pas...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Que ce soit l'agenda d'une ou plusieurs personnes, les résultats d'un ou plusieurs élèves, les mouvements de stock d'un ou plusieurs articles, etc. la gestion des données reste la même.
    On n'organise pas les données comme on veut qu'elles soient représentées.
    Dans une base de données il y a des tables (Exemple Access) ou liste de données (Exemple Excel) qui contiennent différents enregistrements et ensuite il y a les interfaces graphique de communications (en anglais Graphical User InterfaceI)
    Les GUI peuvent être un UserForm ou une table dans une feuille où grâce aux fonctions de recherches, on ira chercher les données d'un élève, d'un article, d'une activité avec les détails pour ceux-ci ce qui se résume à très peu de feuilles (des feuilles de données et la feuille de consultation)
    Lorsque l'on réserve une place d'avion sur internet, il n'y a pas autant d'écrans qu'il n'y a de numéros de vols, de compagnies et de passagers.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par Novice72 Voir le message
    Bonjour Riaolle,

    Juste pour te remercier de tout le travail que tu as fait pour moi.

    Je me penche dessus cet après midi et te redis.

    Encore merci.

    NOVICE72
    Merci Riaolle,

    J'ai réussi avec ce que tu m'as donné. Super tutoriel que tu m'as donné.

    Encore Merci.

    NOVICE72

  12. #12
    Membre à l'essai
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2017
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Créer des feuilles EXCEL à partir d'une liste en conservant la macro
    Bonjour,
    Je rencontre un problème avec l'une de mes macros :
    J'ai réalisé une première macro qui calcule les distances et les temps de parcours à partir d'une liste de points de départ et d'arrivée.
    J'ai ensuite réalisé (ou plutôt essayé) une seconde macro qui permet de créer n feuilles EXCEL (une feuille par ville de départ) reprenant la macro de calcul des distances et temps de parcours --> la macro semble fonctionner car elle créer bien une feuille par ville et il est possible de lancer la macro de calcul des distances et temps, mais elle n'affiche aucun résultat (sans pour autant afficher de message d'erreur).

    Si quelqu'un pouvait m'aider à faire fonctionner cette macro ça serait super. Merci d'avance.

    Et voici la macro en question :


    Sub Creation_Onglets_Selon_Modele()
    Dim c As Range

    Application.ScreenUpdating = False
    Set c = Worksheets("Noms_Villes").Range("E4")
    Do Until IsEmpty(c)

    'on copie le modèle en dernier
    Worksheets("Itinéraires").Copy after:=Worksheets(ThisWorkbook.Sheets.Count)

    With Worksheets(ThisWorkbook.Sheets.Count)
    .Name = c.Value
    .Range("C1") = c.Value
    .Range("C3") = Date
    End With

    Set c = c.Offset(1, 0)
    Loop

    Application.ScreenUpdating = True
    End Sub

  13. #13
    Membre émérite
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Points : 2 813
    Points
    2 813
    Par défaut
    Bonjour et bienvenue au forum Rodomacro !
    Si tu as une question (bien différente d'une autre conversation) ouvre ta propre conversation. Et surtout ne pose pas ta question sur plusieurs conversations en même temps, cf. https://www.developpez.net/forums/d1...-meme-feuille/.
    Quand tu écris du code, écris le entre balises code (bouton #).
    Voici les règles du forum : http://club.developpez.com/regles/
    Nous t'attendons donc sur une nouvelle conversation. Précise bien ce que tu veux dire par
    la macro semble fonctionner [...] mais elle n'affiche aucun résultat
    la macro de calcul des distances et temps
    Quelle est cette macro de calcul des distances ? Peut-être que l'erreur provient de cette macro. Cette macro a-t-elle été testée ?

  14. #14
    Membre à l'essai
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2017
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Oui j'ai testé la macro de calcul de distance et elle fonctionne très bien sur la feuille de base (celle que je cherche à dupliquer).
    Tu peux la trouver sur le lien suivant (c'est le 1er lien) : https://excelinsmartdata.fr/downloads/


    Merci !

  15. #15
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Dans le module "Geoloc" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'Remplacer :
    Sub GoogleMaps_Itin()
    Dim shtData As Worksheet, shtRqt As Worksheet
    'Par :
    Sub GoogleMaps_Itin(shtData As Worksheet)
    Dim shtRqt As Worksheet
    'Et supprimer la ligne :
    Set shtData = Sheets("Itinéraires")
    Dans le module de la feuille "Itinéraires", ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Calcul()
      Call GoogleMaps_Itin(Me)
    End Sub
    Sur la feuille de calcul "Itinéraires", affecter cette macro (Calcul) au bouton "Lancer le calcul des itinéraires"

    Maintenant, cette feuille peut être dupliquée (j'ai pas testé).
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  16. #16
    Membre à l'essai
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2017
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    J'ai appliqué vos consignes mais lorsque je lance le bouton de calcul des itinéraires, un message d'erreur s'affiche : "Utilisation incorrecte du mot clé "Me"".

    J'ai essayé de contourner l'utilisation de la fonction Call mais ça ne marche pas non plus.

    Avez vous une idée pour ce problème ?

    Merci.

  17. #17
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Où se trouve le code VBA ?
    Le mot clé ME fait référence à l'instance de la classe dans laquelle le code est exécuté.
    Donc par exemple dans un UserForm ou dans un module de feuille mais pas dans un module standard.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  18. #18
    Membre à l'essai
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2017
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Effectivement je ne savais pas que le mot clé ME devait passer par un UserForm ou un module de Feuille.
    J'ai donc créé un nouveau module de feuille contenant la macro de calcul des itinéraires. Sur ce même module de feuille, j'ai intégré la macro de Patrice 740 (Sub Calcul).
    Mon problème est donc pratiquement résolu ! En effet la macro de calcul des itinéraires fonctionne maintenant sur toutes les feuilles mais lorsque j'active le bouton pour la lancer (qu'elle que soit la feuille), la macro calcule les itinéraires de la 1ère feuille.

    Savez vous comment faire pour que ma macro calcule les itinéraires de la page où se trouve le bouton et non pas ceux de la 1ère feuille ?

    Merci.
    Fichiers attachés Fichiers attachés

  19. #19
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Effectivement je ne savais pas que le mot clé ME devait passer par un UserForm ou un module de Feuille
    Tu places le curseur de la souris sur le mot clé ME, tu appuies sur la touche de fonction F1 et tu auras l'aide du VBA qui te donnera toutes les explications pour t'éclairer
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  20. #20
    Membre à l'essai
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Juillet 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2017
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Merci pour votre aide, j'ai maintenant toutes les clés en main pour y arriver !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. VBA création feuilles nommées numerotés
    Par DixFire dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/03/2012, 16h15
  2. [XL-2000] macro création feuilles
    Par dagil28 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 07/04/2009, 19h38
  3. Problème pour création feuille Excel - POI
    Par Frigok dans le forum Documents
    Réponses: 2
    Dernier message: 06/04/2009, 16h05
  4. Exemple création feuille Excel avec mise en page
    Par celiaaa dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/07/2007, 12h30
  5. [VBA-E]création feuille en fonction données d'1 col.
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/02/2006, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo