Forums XLPages

Tous les messages (myDearFriend!)

1 2 3 4 ... 147 »
Re: Explication de code
#1
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 26-02 14h07

Bonjour Eric, le forum,

 

Tout d'abord, et concernant la duplication d'instance de ton fichier, j'avoue que je sèche frown... Je viens de vérifier et je n'ai pas cet effet indésirable sur ma config (Office 365). Ca semble fonctionner correctement chez moi.

 

Ensuite, concernant le code VBA contenu dans la version n°1 du fichier fourni pour BobJazz (voir lien du fil de discussions dans mon post précédent, plus haut) :

Citation :

ericcool a écrit :

Par ailleurs, le fichier n°01 du post que tu as retrouvé possède une ligne de code dont toi seul à le secret et de ce fait, je ne parviens pas à déchiffrer ???. Le code :

 

If V > 0 And V / 111 = V \ 111 Then 

A l'origine, l'ami BobJazz souhaitait remplir la TextBox avec 3 chiffres, et si ces chiffres était identiques (222, 555, etc.), cela devait déclencher l'action de clignotement.

 

L'idée était donc d'analyser la valeur (V) contenue de cette TextBox après chaque caractère saisi :

  1.  on vérifie d'abord que la valeur soit supérieure à zéro (If V > 0)
  2.  on teste ensuite si la valeur saisie est divisible par 111 ou non (la saisie dans cette TextBox étant limitée à 3 caractères maxi grâce à sa propriété MaxLength)

 

Sachant qu'une série de 3 chiffres successifs est automatiquement divisible par 111, je m'assure que c'est bien le cas avec l'expression : "V / 111 = V \ 111".

 

Pour rappel, le signe " \ " (back slash ou slash inversé) est l'opérateur de division entière en VB-VBA. Son résultat est automatiquement un entier (retourne donc, un résultat sans aucune décimale !).

 

Autrement dit : si "V / 111" donne la même chose que son équivalent entier, alors il s'agit bien d'une série de 3 chiffres identiques.

 

Bien évidemment, on peut procéder de bien différentes manières pour obtenir le même test, comme :

  • vérifier que le modulo donne zéro :  "If V Mod 111 = 0"
  • vérifier que le reste de la division donne zéro : "If (V / 111) - Int(V / 111) = 0"
  • ou même comparer directement les 2 expressions, un peu comme je l'ai fait : "If (V / 111) = Int(V / 111)"

 

Voilà, mon cher Eric, j'espère que ça peut t'éclairer un peu sur la façon dont j'ai procédé.

 

Cela dit, je suis navré pour la duplication des instances du fichier lorsque tu l'exécute, car je n'ai aucune idée de ce qui se passe sur ton poste... (Problème de sécurité ? Fichier stocké dans un emplacement non approuvé (voir options Excel) ? Problème d'accès en écriture sur un lecteur réseau ?)

Si tu trouves l'explication, je reste bien évidemment preneur !

 

Bien amicalement,

 


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Suppression Parentheses et leur contenus
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 05-02 16h42

Re,

 

Finalement, à bien y réfléchir Eric, voici une autre solution possible :

Private Function supprPth(T As String) As String
Dim vTab As Variant
Dim N As Byte
    vTab = Split(T, "(")
    T = vTab(0)
    For N = 1 To UBound(vTab)
        T = T & Split(vTab(N), ")")(1)
    Next N
    T = Replace(T, "  ", " ")   'Eviter les éventuels double-espaces dans l'expression !
    supprPth = Trim(T)
End Function

Je crois que je préfère cette solution là, qui me semble plus simple.

 

En tout cas, merci de ton passage Eric c (je suis toujours ravi de retrouver de vieux amis croisés sur d'autres forums, et en d'autres temps... De bons souvenirs !).

 

Bien cordialement,

 


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Suppression Parentheses et leur contenus
#3
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 05-02 16h03

Bonjour Eric smiley,

 

Citation :

ericcool a écrit :

    Petite question : et si les valeurs entre parenthèses se situent au hasard de la cellule [ex : (C.f ) Not Now Dick ( Fr)] ou [Not Now (Ex) Dick ( Fr)] - Comment doit on procéder ? 

 

Arf, bonne question cher Eric !

 

Moi, je tenterais quelque chose comme ça :

Private Function supprPth(T As String) As String
Dim N As Byte, N2 As Byte
    N = InStr(T, "(")
    Do While N > 0
        N2 = InStr(N + 1, T, ")")
        If N2 > 0 Then
            T = Left(T, N - 1) & Mid(T, N2 + 1)
        End If
        N = InStr(T, "(")
    Loop
    T = Replace(T, "  ", " ")   'Eviter les éventuels double-espaces dans l'expression !
    supprPth = Trim(T)
End Function

 

Evidemment, je suppose que certains préfèreront faire appel aux expressions régulières ou autre du genre (et ils auront sûrement raison !), mais je continue de faire ça à l'ancienne pour ma part... wink

 

Bien cordialement,

 

 


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Suppression Parentheses et leur contenus
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 05-02 12h25

Bonjour Jean-Maurice, le Forum,

 

Citation :

MRX78 a écrit :

... est ce que le code que tu as ecrit supprime les espaces au debut et à la fin des noms?Qui se trouvent dans les colonnes suivantes :

Cela concerne la colonne B ( Nom du Cheval )

Cela concerne la colonne G ( Jockey )

Cela concerne la colonne I (Proprietaire )

Cela concerne la colonne J ( Entraineur )

 

Oui, pour les colonnes B et J puisque c'était l'objet de ta demande initiale, mais non pour les colonnes G et I puisque tu n'en parlais pas... wink

 

Pour les colonnes B et J, c'est la fonction Trim() que j'ai utilisée. Elle supprime les espaces inutiles en début et fin d'expression texte, c'est son rôle, elle est faite pour ça!

Pour info, c'est un peu l'équivalent VBA de la fonction Excel de feuille de calcul "SUPPRESPACE()".

 

Pour ajouter ce même traitement (suppression des espaces inutiles seulement) aux colonnes G et I, tu pourrais modifier simplement la procédure VBA EpurerColBJ(), comme suit :

 

Sub EpurerColBJ()
Dim LMax As Long, L As Long
    With Sheets("Feuil1")
        LMax = .Cells(.Rows.Count, 1).End(xlUp).Row
        'Pour chaque ligne du tableau
        For L = 2 To LMax
            With .Cells(L, 2)       '2 = colonne B
                .Value = supprPth(.Value)
            End With
            With .Cells(L, 7)       '7 = colonne G
                .Value = Trim(.Value)
            End With
            With .Cells(L, 9)       '9 = colonne I
                .Value = Trim(.Value)
            End With
            With .Cells(L, 10)      '10 = colonne J
                .Value = supprPth(.Value)
            End With
        Next L
    End With
End Sub

Il te faut ajouter ce qui est indiqué en Jaune ci-dessus. Ne rien toucher au reste du code...

 

 

Si ça répond bien à ta demande, merci de mettre ce fil en "[Résolu]" (cf. ma signature ci-dessous).

Bien cordialement,

 


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Suppression Parentheses et leur contenus
#5
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 04-02 18h02

Bonjour MRX78, bienvenue sur XLPages smiley

 

Tu ne précises pas vraiment.... par formule Excel ou par VBA ? 

 

Une proposition par formule Excel :

Par exemple, soit le texte "Paul Soto ( IRE )" en cellule B4.

La formule suivante devrait répondre à ta demande :

=SUPPRESPACE(SI(ESTERR(CHERCHE("(";B4));B4;GAUCHE(B4;CHERCHE("(";B4)-1)))

 

Une proposition par VBA :

Lancer la procédure "EpurerColBJ()" supprimera d'un coup, tous les contenus entre parenthèses en colonnes B et J de la feuille "Feuil1".

 

DANS UN MODULE DE CODE STANDARD (ex : Module1)

Option Explicit
'myDearFriend! www.mdf-xlpages.com

Sub EpurerColBJ()
Dim LMax As Long, L As Long
    With Sheets("Feuil1")
        LMax = .Cells(.Rows.Count, 1).End(xlUp).Row
        'Pour chaque ligne du tableau
        For L = 2 To LMax
            With .Cells(L, 2)       '2 = colonne B
                .Value = supprPth(.Value)
            End With
            With .Cells(L, 10)      '10 = colonne J
                .Value = supprPth(.Value)
            End With
        Next L
    End With
End Sub

Private Function supprPth(T As String) As String
Dim N As Byte
    N = InStr(T, "(")
    If N > 0 Then
        T = Left(T, N - 1)
    End If
    supprPth = Trim(T)
End Function

En espérant avoir répondu à ton besoin.

Bien cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Explication de code
#6
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 03-02 01h57

Bonsoir ericcool, le Forum,

 

Eh bien ! Le fichier que tu joins, date du mois d'août 2005. Ça me met un coup de jeune ! smiley

Il s'agit visiblement d'un exemple que j'avais réalisé en réponse à une question sur un Forum (sur le site ExcelDownloads compte tenu de l'époque...).

 

Visiblement la macro devrait se déclencher lorsque lorsque 3 chiffres identiques (entre 1 et 8) sont saisis dans la TextBox (il peuvent être séparés par d'autres caractères le cas échéant).

 

Aussi, pas facile de se rappeler le contexte de ce fichier, hein ?! 

 

Cela dit, une rapide recherche Google, et je viens de retrouver le fil de discussion (sur XLD) à l'origine de ce fichier fait pour l'ami bobJazz. Tu devrais y trouver tout le détail souhaité. 

 

Nb: lorsque tu récupères des fichiers comme ça, essaies de conserver aussi l'URL source, c'est toujours utile pour avoir le contexte et l'explication... (moi, c'est ce que je fais la plupart du temps).

 

En espérant avoir pu t'aider.

Bien cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Création fichier client
#7
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 30-12 13h52

Bonjour HenriMichel, bienvenue sur XLpages smiley

 

Tu devrais pouvoir trouver de très nombreux exemples de ce que tu souhaites faire dans le Forum ici (et dans tous les forums portant sur Excel d'ailleurs !), car ce type de sujet est récurrent.

 

Concernant la voie à suivre : pour ma part, l'usage de VBA me semble indispensable.

 

L'objectif du forum ici n'est cependant pas la construction d'un projet de bout en bout, mais doit rester dans le cadre du conseil, de l'assistance ou aide ponctuelle. Aussi, il te faut donc déjà quelques bases VBA pour construire ton propre outil. 

 

En gros, la mise en place la plus courante, c'est de stocker la base de données dans un onglet masqué et créer un formulaire (userForm VBA) pour la recherche et la restitution des éléments souhaités.

L'essentiel étant que la base de données soit "propre" et adaptée pour les recherches voulues.

 

Les questions qui se posent encore cependant c'est :

- La base de données est-elle destinée à être modifiée souvent ? Et par qui et comment ?

- Y a-t-il plusieurs utilisateurs finaux ?

- Ou bien, il n'y a qu'un seul utilisateur (toi). Ce qui est bien évidemment beaucoup plus simple...

 

En espérant avoir pu t'aiguiller.

Bien cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Utilisation du mDF XLcalendar dans un text box
#8
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 13-12 18h54

Bonjour wjmavsk,

 

Navré, mais ce mode particulier d'utilisation du mDF XLcalendar n'a été conçu avec ces possibilités là.

 

Bien cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Utilisation du mDF XLcalendar dans un text box
#9
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 12-12 18h10

Bonjour wjmavsk,

 

Dans ce mode d'utilisation, le mDF XLcalendar est entièrement pilotable par VBA. C'est volontaire que le volet "Options" ne soit pas disponible pour l'utilisateur puisque, en principe, c'est au développeur de décider quoi afficher, sous quel format, etc...

 

Je t'invite donc à relire (à nouveau !) le Fil de discussion cité plus haut ainsi que cette FAQ portant sur ce mode d'utilisation particulier du mDF XLcalendar.

 

Le fichier exemple fourni te montre justement 2 arguments possibles à utiliser lors de l'appel du Calendrier via VBA : 

  • CalFormat : pour définir le format de date souhaité (ex : "dddd mm/dd/yyyy")
  • CalLang : pour définir la langue du Calendrier (ex : "FR")

Auxquels, j'ajoute 2 autres arguments possibles (dont je n'avais pas parlé) :

  • CalSkin : pour choisir l'un des 8 skins couleur disponibles (valeur attendue : de 0 à 7)
  • CalTransp : pour définir un taux de transparence pour l'affichage (valeur de 0 à 170).

 

Comme présenté dans le fichier exemple, l'appel au XLcalendar se fait via la méthode suivante :

mDFXLcalShow CalCtrl:=TextBox1, CalFormat:="dddd mmm yyyy", CalLang:="fr", CalSkin:=2, CalTransp:=50

Chacun de ses arguments est facultatif (des valeurs par défaut sont prévues) et ils doivent être séparés par une virgule. S'agissant d'arguments "nommés", l'ordre des arguments n'a aucune importance dans l'appel de cette méthode.

 

Je pense que tu as là tout ce qu'il te faut pour répondre à ton problème.

 

Bien cordialement,

 


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Utilisation du mDF XLcalendar dans un text box
#10
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1518

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 12-12 01h45

Bonsoir wjmavsk, le Forum,

 

Je vois 2 situations possibles qui pourraient expliquer le message d'erreur que tu rencontres avec le fichier "Test mDF XLcalendar" issu de CE FIL de discussion du Forum.

 

  1.  Le mDF XLcalendar n'est pas correctement installé dans ta configuration Excel :
    Voir CETTE FAQ le cas échéant. Au final, le mDF XLcalendar doit apparaitre dans tes macros complémentaires disponibles dans les options Excel.
     
  2.  La référence au projet "mDF XLcalendar" est indiquée "[MANQUANTE]" : (depuis l'éditeur VBE, faire menu Outils / Références... / et vérifier que l'élément mDF XLcalendar est bien coché et non "[manquant]". Si, il est affiché "[MANQUANT]", dis-le moi, et je te donnerai la marche à suivre...

 

Je donne tout le détail d'installation nécessaire dans CE FIL accompagnant le fichier Test exemple fourni. N'hésite pas à relire précisément chaque étape expliquée.

 

Par ailleurs, et compte tenu des difficultés rencontrés avec les macros complémentaires sur les dernières versions Excel (Office 365 notamment), j'en profite pour préciser (malheureusement) qu'il devient de plus en plus compliqué de développer des macros telles que le mDF XLcalendar. Aussi, je n'ai pas abandonné ce projet pour autant, mais j'ai préféré le mettre de côté pour l'instant...

 

En espérant t'avoir aiguillé sur la bonne voie...

Bien cordialement,

 

Edité par myDearFriend! le 12/12/2021 17:26:47

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

1 2 3 4 ... 147 »