Re: Explication de code | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 26-02-2022 14h07
Bonjour Eric, le forum,
Tout d'abord, et concernant la duplication d'instance de ton fichier, j'avoue que je sèche
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 : 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 :
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 :
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
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Suppression Parentheses et leur contenus | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 05-02-2022 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
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Suppression Parentheses et leur contenus | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 05-02-2022 16h03
Bonjour Eric
Citation : ericcool a écrit :
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...
Bien cordialement,
Didier_mDF
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Suppression Parentheses et leur contenus | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 05-02-2022 12h25
Bonjour Jean-Maurice, le Forum,
Citation : MRX78 a écrit :
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...
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
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Suppression Parentheses et leur contenus | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 04-02-2022 18h02
Bonjour MRX78, bienvenue sur XLPages
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
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Explication de code | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 03-02-2022 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 ! 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
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Création fichier client | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 30-12-2021 13h52
Bonjour HenriMichel, bienvenue sur XLpages
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
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Utilisation du mDF XLcalendar dans un text box | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 13-12-2021 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
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Utilisation du mDF XLcalendar dans un text box | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 12-12-2021 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 :
Auxquels, j'ajoute 2 autres arguments possibles (dont je n'avais pas parlé) :
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
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Utilisation du mDF XLcalendar dans un text box | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 12-12-2021 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.
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
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |