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

Macros et VBA Excel Discussion :

Probleme de VBA pour selection d'une carte [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut Probleme de VBA pour selection d'une carte
    Bonjour à tous,
    je suis en train d’adapter un ancien fichier avec carte de paris et ma région, j'ai tout modifier même la carte, et j'ai deux problèmes,

    1 - ma carte n'est plus cliquable
    2 - j'ai une erreur sur cette ligne que je n'arrive pas a trouver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Carte").Shapes(Sheets("BddCarte").Cells(l, 1).Value).Fill.ForeColor.RGB = Sheets("BddCarte").Cells(l, fond).Interior.Color

    voici le début de mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public ancienne_couleur, ancienne_forme
    Sub carte()
     
    'Copie la couleur de la case de la feuille Données dans la forme ayant pour nom en première colonne
    fond = Sheets("Carte").Cells(6, 85).Value
    contour = Sheets("BddCarte").Cells(2, 57).Value
    contour_ep = Sheets("BddCarte").Cells(3, 55).Value
    l = 1
     
    Do
    l = l + 1
        Sheets("Carte").Shapes(Sheets("BddCarte").Cells(l, 1).Value).Fill.ForeColor.RGB = Sheets("BddCarte").Cells(l, fond).Interior.Color
        Sheets("Carte").Shapes(Sheets("BddCarte").Cells(l, 1).Value).Line.ForeColor.RGB = Sheets("BddCarte").Cells(l, contour).Interior.Color
        'épaisseur
        Sheets("Carte").Shapes(Sheets("BddCarte").Cells(l, 1).Value).Line.Weight = contour_ep
     
    Loop Until Sheets("BddCarte").Cells(l + 1, 1).Value = ""
    Un grand merci pour votre aide.

    Sam

  2. #2
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut VBA
    je viens de résoudre mon second problème,

    mais je n'arrive toujours pas a rendre ma seconde carte cliquable comme l'ancienne , pourtant j'ai changé juste la carte.

  3. #3
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut besoin d'aide
    bonjour a tous,
    je relance cette question, afin de savoir si une âme peut me venir en aide?

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Le problème est là :
    Nom : V2.jpg
Affichages : 90
Taille : 26,2 Ko
    C'est à dire que Sheets("BddCarte").Cells(l, 1).Value contient le nombre 97401 au lieu du texte 97401 !

  5. #5
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut probleme VBA
    je viens de changer en format texte est j'ai le même message

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par Sake8216 Voir le message
    je viens de changer en format texte est j'ai le même message
    C'est pas suffisant, regardes la variable locale.
    La preuve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
      MsgBox Sheets("BddCarte").Cells(2, 1).Value & " est une variable de type " & TypeName(Sheets("BddCarte").Cells(2, 1).Value)
    End Sub
    Il faut aussi changer la valeur.

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Sake8216 Voir le message
    mais je n'arrive toujours pas a rendre ma seconde carte cliquable comme l'ancienne , pourtant j'ai changé juste la carte.
    Sans doute as-tu aussi changé de nom.

    Cela dit, tu ne donnes pas assez d'explications sur ton problème pour qu'il soit possible de le comprendre. C'est sans doute pourquoi tu n'as pas de réponses.

  8. #8
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut probleme VBA avec le fichier
    j'ai adapté un fichier reporting avec une vision de données sur une carte sous excel (onglet carte) , j'ai remplacé la carte initiale par une autre carte d'un autre département, afin d'applique ce reporting aux communes de cette dernière.

    Sur la première carte on pouvait cliquer sur une commune et le code insee de la commune s'affiche sur la cellule BW20. et en fonction du filtre BW6, la carte se colorie en fonction des données BBDCARTE


    j'ai changé les données et la carte, mais je n'arrive pas a faire apparaitre les données sur la carte ni changer de couleur ni cliquer sur la carte.

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par Sake8216 Voir le message
    j'ai une erreur sur cette ligne que je n'arrive pas a trouver :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Carte").Shapes(Sheets("BddCarte").Cells(l, 1).Value).Fill.ForeColor.RGB = Sheets("BddCarte").Cells(l, fond).Interior.Color
    Citation Envoyé par Sake8216 Voir le message
    j'ai adapté un fichier reporting avec une vision de données sur une carte sous excel (onglet carte) , j'ai remplacé la carte initiale par une autre carte d'un autre département, afin d'applique ce reporting aux communes de cette dernière.
    Vu que tu as changé le carte, la première chose à vérifier, c'est que les formes cherchées existent dans la carte (celles de la feuille BddCarte existent dans la feuille Carte) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub ListeFormes()
    Dim shp As Shape
      For Each shp In Worksheets("Carte").Shapes
        Debug.Print shp.Name
      Next
    End Sub

  10. #10
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut probleme VBA
    oui j'ai bien changé les noms des formes ils sont bien dans bddcarte et dans la carte

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    re,

    Il faudrait prendre le temps de comprendre une simple ligne de code !

    Tu ne sais pas où se trouve Sheets("BddCarte").Cells(2, 1).Value ????
    C'est la cellule à l'intersection de la 2ème ligne et de la 1ère colonne, c'est-à-dire A2, de la feuille BddCarte !!!!!!!

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,
    Citation Envoyé par Sake8216 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    '...
    fond = Sheets("Carte").Cells(6, 85).Value
    '...
    Sheets("Carte").Shapes(Sheets("BddCarte").Cells(l, 1).Value).Fill.ForeColor.RGB = Sheets("BddCarte").Cells(l, fond).Interior.Color
    Assez surprenant comme code, fond est donc un numéro de colonne !

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Je n'ai pas ouvert ton fichier (je n'ouvre par les fichiers avec macro).
    Il semblerait que quand tu cliques, tu lances une macro située dans ton fichier d'origine, ce qui a pour effet de l'ouvrir.
    Il faudrait voir quelle est la macro affectée à l'objet sur lequel tu cliques.

    Si on s'en tient à la macro Sub Carte, que se passe-t'il si tu l'exécutes de puis le VBE (avec le fichier d'origine fermé)

  14. #14
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut probleme VBA
    voici ce que j'ai, (le fichier d’origine s'ouvre toujours)

    Nom : Capture cd.PNG
Affichages : 327
Taille : 61,9 Ko

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Re,
    Citation Envoyé par Sake8216 Voir le message
    ...le fichier d’origine s'ouvre toujours
    Comment c'est possible ?
    Si ton fichier est ouvert, le fichier d'origine fermé, et que lances la macro depuis le VBE (i.e. sans passer par Excel), il n'y a aucune instruction qui ouvre le fichier d'origine !

    Places un point d'arrêt sur la première instruction (fond = Sheets...), lances la macro : elle s'arrête sur le point d'arrêt.
    Continue en pas à pas (F8) jusqu'à ce que le fichier d'origine s'ouvre, quelle est la ligne qui provoque l'ouverture ?

  16. #16
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut probleme VBA
    avec cette méthode le fichier d'origine ne s'ouvre pas. et je ne peux pas aller plus loin que la ligne en jaune.

    Nom : Capture cd.PNG
Affichages : 346
Taille : 208,8 Ko

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Re,

    Pour confirmer ce que je te dis depuis le début, ajoutes ce test et exécutes le depuis le VBE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub TestPresenceForme()
    Dim shp As Shape
    Dim nom
      nom = 97401
      On Error Resume Next
      Set shp = Worksheets("Carte").Shapes(nom)
      On Error GoTo 0
      If shp Is Nothing Then MsgBox "La forme " & nom & " n'existe pas !", vbCritical
    End Sub
    EDIT : c'est normal vu que nom est typé Variant/Double (au lieu de String)

    Ce deviens lassant de répéter sans cesse qu'il faut toujours commencer chaque module par Option Explicit.

  18. #18
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut probleme VBA
    cela ne me donne rien

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

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par Sake8216 Voir le message
    cela ne me donne rien
    J'ai modifié le post précédent, lis-le et recommences

  20. #20
    Membre averti
    Homme Profil pro
    ING
    Inscrit en
    Février 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ING
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2018
    Messages : 27
    Par défaut probleme VBA
    j'ai bien le message Box disant que la forme n'existe pas et pourtant elle existe .

    Nom : Capture cd.PNG
Affichages : 98
Taille : 151,3 Ko

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Selection d'une plage de données problématique
    Par Fab117 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/01/2007, 14h41
  2. [VBA-E] Selection d'une colonne
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/12/2006, 12h47
  3. [VBA-E] selection en une seule fois
    Par SpaceFrog dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/10/2006, 16h37
  4. [XPath] Problème de chemin pour selection de certains noeud
    Par baptistoux dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 03/08/2006, 11h34
  5. [VBA-E]Selection d'une ligne a partir d'une certaine colonne
    Par deathsurfer dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/06/2006, 16h36

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