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

Excel Discussion :

Ajout "-" tous les 5 caractères [XL-2010]


Sujet :

Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut Ajout "-" tous les 5 caractères
    Bonjour à tous,

    Je dois saisir sous excel une grande quantité de license Windows et Office.
    Format des licences : XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
    Pour me rentre la tâche plus facile, je souhaiterais que, lorsque je saisis mes license, un tiret soit ajouter tout les 5 caractères.

    Est-ce possible ?

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Par défaut
    Pourquoi ne pas utiliser un format personnalisé ?

    Regard la PJ
    Images attachées Images attachées  
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    Effectivement, cette solution est parfaite.
    Ca ne m'avait même pas traverser l'esprit
    Merci.

  4. #4
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    En fait la solution n'est pas si parfaite ^^ (à part si je me trompe).
    Cela marche mais si on saisit seulement des chiffres.
    Or lorsque je saisis des licences, il y a lettres et chiffres.

    Une idée ?

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Par défaut
    J'ai regardé sur cet article :

    http://jeannot45.developpez.com/arti...personnalises/

    Qui parle de ces formats personnalisés, mais il ne parle que des chiffres, et pas de caractères de texte

    J'ai essayé avec l'@, qui normalement remplace une chaine de caractère, mais c'est pas très beau La seule solution que tu as alors est de passer par des formules, en mettant ton code dans une cellule.

    Un truc dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =STXT(B5;1;5) & "-" & STXT(B5;6;5) & "-" & STXT(B5;11;5) & "-" & STXT(B5;16;5) & "-" & STXT(B5;21;5)
    Où B5 est là où est ton numéro de licence.

    EDIT : je précise qu'avec qu'une fonction personnalisée via VBA, ça serait plus simple mais ça marche aussi en formule, même sic 'est un peu plus long
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  6. #6
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    Si je comprend bien avec ta solution, je dois saisir mes licences dans une certaine colonne (par exemple A) pour que la formule transforme ma saisie dans la colonne B. Est-ce cela ?
    Sinon tu parle de fonction VBA, Est-ce que cela est compliqué à mettre en place ?


    Merci de prendre de ton temps pour te pencher sur mon problème.

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Par défaut
    Oui c'est ça

    Si tu connais rien en VBA, ça sera plus long qu'avec la formule donnée précédemment Sauf si une âme charitable ici veut te l'expliquer
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  8. #8
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    La chose qui me gène avec la formule, c'est que je me retrouve avec une colonne qui ne sert à rien (à part au calcul).

    Avec une formule VBA, Est-ce que je pourrais avoir seulement une colonne avec mes licences ?

  9. #9
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Par défaut
    Dans tous les cas, il faudra que tu saisisse tes numéros de licence quelquepart.

    Après sinon, tu met tes numéros de licences, la formule sur la colonne d'à côté, tu fais un copier/coller valeurs sur la colonne B (pour enlever les formules), et tu supprimes la colonne A.

    Ou c'est pas toi qui doit les saisir ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  10. #10
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    Effectivement je ne serais pas la seule personne à saisir les licences.
    Mon objectif était de saisir une licence en B1 (avec/sans majuscule), par exemple, et de retrouver cette licence dans cette même cellule, en majuscule et avec les tirets tous les 5 caractères.

    Lorsqu'on active un produit Windows, la saisie est automatiquement basculée en majuscule et un tiret est rajouté tous les 5 caractères.

    Je voudrais donc obtenir ce résultat pour faciliter un peu mon travail et celui de mes collègues, et obtenir une mise en forme identique pour chaque licence saisie. Car cela peut différé en ce moment suivant les personnes qui saisissent les clés.

  11. #11
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,
    • soit contrôle à la validation de la cellule via l'évènement Worksheet_Change,


    • soit saisie à la MicroSoft dans un UserForm

  12. #12
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    très vite, en PJ un schéma de principe (classeur opérationnel) avec VBA, il faut cliquer sur le petit cochon dans la barre d'accès rapide.

    Schéma de principe DG.zip

    cordialement,

    Didier

  13. #13
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    Merci beaucoup, j'y vois déjà plus clair.

    Je vais peut-être paraitre un peu chiant, mais est-il possible de passer à la textbox suivante automatiquement après avoir tapé 5 caractères ?
    Je n'arrive pas à trouver cela.

  14. #14
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Par défaut
    Oui c'est possible, regarde ici :

    http://silkyroad.developpez.com/VBA/...serForm/#LII-E

    Tu auras surement une idée de comment faire
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  15. #15
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    J'étais justement en train d'arriver à ce passage. Merci.

  16. #16
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Tu peux agir directement sue les propriétés par défaut de tes textbox, c’est ainsi que dans le 1er exemple elles étaient bloquées à 5 caractères, voir ce coup-ci dans la fenêtre propriétés la valeur donnée à Autotab et à Maxlenght.
    Sinon, en sélectionnant plusieurs objets dans un UsF, tu peux modifier leurs propriétés communes en une fois
    Dans cet exemple, du coup après la 5ème série, le focus passe au bouton Valider et les différentes saisies s'écrivent les uns sous les autres, si une case est incomplète, c'est signalé et non écrit, à toi de penser aux différentes situations...
    Pour lancer, il faut toujours cliquer sur le petit cochon dans la barre d'accès rapide.

    Nom : OrmonthData-1.jpg
Affichages : 1357
Taille : 22,1 Ko

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Option Explicit
    Option Base 1
    Dim J As Long
     
    Private Sub CommandButton1_Click()
    Dim I As Byte
    Dim MesTextBox As Variant 'Array demande un variant
    Dim MaClef As String
     
    MesTextBox = Array(TextBox1, TextBox2, TextBox3, TextBox4, TextBox5)
     
    For I = 1 To 5
        If Len(MesTextBox(I)) <> 5 Then MsgBox "Saisie incomplète en case " & I & "!": Exit Sub ' on teste si tout rempli
        MaClef = MaClef & MesTextBox(I) & "-"
    Next I
        Cells(J, 1).Value = Left(MaClef, 29) 'on fait sauter le dernier "-" en surplus
    For I = 1 To 5
        MesTextBox(I).Value = "" ' on efface les données
    Next I
    J = J + 1
    MesTextBox(1).SetFocus 'on remet le focus au début
    End Sub
     
    Private Sub UserForm_Initialize()
    J = 1 'pour le scéma de principe à initialiser selon la position voulue à chaque redémarrage de séquence de saisie
    End Sub
    Schéma de principe 2 DG.zip

    cordialement,

    Didier

  17. #17
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    Merci pour ta réponse Ormonth.

    J'ai réussi à passer automatiquement d'une textbox à l'autre et à forcer la saisie en majuscule.
    maintenant je bute sur autre chose:
    Lorsque je saisie à l'aide de VBA ma licence, elle s'applique (en reprenant l'exemple d' Ormonth) à la cellule B2.
    Y a t-il un moyen de l'appliquer à une cellule sélectionner auparavant ?

  18. #18
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    vois du côté de la propriété ActiveCell dans l'aide VBA.

    cordialement,

    Didier

  19. #19
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    Je regarde ça.
    Merci.

  20. #20
    Membre averti
    Inscrit en
    Juillet 2013
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 42
    Par défaut
    Ca y est je suis parvenu au résultat que j'attendais.
    Merci à vous pour votre aide.

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

Discussions similaires

  1. [KSH] ajouter des saut de lignes tous les 200 caractères dans un fichier
    Par twixi dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 09/10/2012, 15h58
  2. couper tous les 50 caractères
    Par franfr57 dans le forum Langage
    Réponses: 1
    Dernier message: 02/05/2007, 10h01
  3. [Requête/SQL]Ajouter un enregistrement à tous les membres
    Par fernandino dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 18/04/2007, 17h45
  4. Réponses: 2
    Dernier message: 16/08/2006, 14h47
  5. requete ajout caractere sur tous les champs d'une table
    Par lorenzo74 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/06/2006, 13h34

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