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 :

Retour de la constante xl en string et pas en numeric [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut Retour de la constante xl en string et pas en numeric
    Bonsoir a tous
    je cherche a obtenir le retour de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selection.border(xledgeleft).weight
    en constante Excel et non en numérique

    exemple si le weigth fait 2 c'est "XlThin"

    il y a 3 constante
    "xlthin,xlthick,xlmedium" je cherche un moyen a ce qu'elles me soit retournées tel quel


    quelqu'un aurait il une idée afin d'illuminer ma soirées
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Membre confirmé
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Points : 649
    Points
    649
    Par défaut
    Bonsoir,
    une réponse capillotractée en attendant mieux...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub test()
    Nameconst = Array("xlHairline", "xlMedium", "xlThick", "xlThin")
    valconst = Array(1, -4138, 4, 2)
    MsgBox Application.Index(Nameconst, Application.Match(Selection.Borders(xlEdgeLeft).Weight, valconst, 0))
    End Sub
    A+

  3. #3
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
     
    intThickness = Selection.Borders(xlEdgeBottom).Weight
    MsgBox Trouver_epaisseur(intThickness)
     
    End Sub
    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
     
    Private Function Trouver_epaisseur(ByVal intCode _
    As Integer) As String
    If intCode = xlThick Then
        Trouver_epaisseur = "Thick"
        Exit Function
    ElseIf intCode = xlMedium Then
        Trouver_epaisseur = "Medium"
        Exit Function
    ElseIf intCode = xlThin Then
        Trouver_epaisseur = "Thin"
        Exit Function
    ElseIf intCode = xlHairline Then
        Trouver_epaisseur = "Hairline"
        Exit Function
    End If
    End Function

  4. #4
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    davido84 ,
    tu as été plus vite que moi
    ton code est plus court que le mien.
    +1

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonsoir Davido

    A oui la !! Ya plus de cheveux

    ca va rallonger mon code bien bien comme il faut Mais il Ya de l'idée

    reste a savoir sil il y a pas une constante de type array contenant déjà le xltypejesaispasquoi

    ce sont tous des menbres de "XlBorderWeight"

    un peu comme pour les bordures gauche,droite ,verticales,etc.....ou la constante contenant l'index est XlBordersIndex
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Gnain on c'est croisé

    donc en gros non ca n'existe pas

    ca n'arrange pas mes affaires ca

    ca m'ennuie sachant que j'ai le top,left,right,bottom a contrôler et cela pour chaque cellules ou mergearea d'une plage

    même si je fait de l'un de vos codes une fonction dans le quel j'injecterais un des 4 arguments

    purré je vais pas dormir cette nuit
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre confirmé
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Points : 649
    Points
    649
    Par défaut
    Re, bonsoir gnain,

    A oui la !! Ya plus de cheveux
    je t'avais prévenu que ça allait décoiffer...

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    purée j'ai la tète en sky et les cheveux qui poussent a l'intérieur

    c'est quand même incroyable que l'on puisse pas récupérer la constante en string sur une application qui en ai a la version X(2007 pour moi)

    mais qu'Est ce qui font chez bill gates
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre confirmé
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Points : 649
    Points
    649
    Par défaut
    Bon après tu peux raccourcir légèrement, du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    T = Array(1, "xlHairline", -4138, "xlMedium", 4, "xlThick", 2, "xlThin")
    MsgBox T(Application.Match(Selection.Borders(xlEdgeLeft).Weight, T, 0))
    mais le principe est le même.
    A+

  10. #10
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, histoire de rajouter une couche : peut-être ici ou mieux , y sélectionner dans la liste déroulante : Typelib.zip

  11. #11
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    quelqu'un aurait il une idée afin d'illuminer ma soirées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A5:D5").BorderAround ColorIndex:=3, Weight:=Excel.XlBorderWeight.xlHairline
    Cordialement

    Docmarti.

  12. #12
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonjour,
    la question de départ n'est pas comment mettre une bordure par code.
    mais d'obtenir comme réponse xlThick ou xlMedium ou xlThin ou xlHairline d'un code semblable à celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox Selection.Borders(xlEdgeBottom).Weight
    sans passer par une fonction custom.
    le code ci-haut donne l'integer de la constante. Est-ce qu'il existe un code excel qui peut faire cela

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour a tous

    Davido et gnain: vos 2 proposition fonctionnent tres bien

    j'aurais préféré m'en passer mais tant pis j'ai essayer les deux en remplaçant les if else endif par des select case dans celle da GNAIN

    j'ai mis ces select case dans celle de Davido
    en gros resultat identique sauf que dans son fonctionnement celle de Davido avant le select case ,la variable est sur et ensuite on teste quelle en est la valeur

    et celle de gnain la valeur est vraiment déterminée en fin de if elseif endif

    je pense après que c'est une question de préférence

    la structure de gnain apportant la possibilité de poser d'autre conditions en même temps a l'intérieur des if elesif

    mais j'aurais vraiment voulu m'en passer

    je suis en train de revoir un truc que j'avais fait il y a plus de 3 ans et le but est d'en reduire le code par des procédures dignes de ce nom
    en effet avant j'hésitais pas les if et elseif un peu mélangés

    en fin c'est toujours du progrès tout de même

    mais encore une fois c'est incroyable que pour ca on doivent faire une procédure

    bon si vous avez des nouvelles a ce sujet n'hésitez pas

    et Merci je le met pas résolu tout de suite
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    Je vois bien un dictionary avec en clef :
    XlBorderWeight1 et en item : xlHairline
    XlBorderWeight-4138 et en item : xlMedium
    etc

    Si ça peut te faciliter le travail une liste que je m'étais faite sur onenote sur les constantes (je ne garanti pas l'exhaustivité, surtout pour les constantes vb).

    eric
    Fichiers attachés Fichiers attachés

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonsoir

    mais bon sang mais c'est bien sur

    tu a tout a fait raison Eriic moi qui utilise tout le tant des dicos pourquoi je n'y ai pas penser

    bon maintenant c'est fait

    je vous propose donc a tous d'aller voir ICI le pourquoi de cette discussion
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Déclarer un constante de type String
    Par JeanNoel53 dans le forum Débuter
    Réponses: 14
    Dernier message: 06/07/2015, 12h00
  2. Retour a la ligne dans un string
    Par naazih dans le forum Débuter
    Réponses: 11
    Dernier message: 09/06/2008, 11h37
  3. Réponses: 7
    Dernier message: 29/06/2007, 07h45
  4. Appel de constantes en format String
    Par Shiftane dans le forum Langage
    Réponses: 2
    Dernier message: 20/07/2006, 14h50
  5. initialiser constante tableau de String
    Par danyboy85 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 27/04/2006, 17h44

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