Fave
XLDnaute Junior
Bonjour à toutes et tous,
Je viens vers vous car j'ai besoin de vos connaissances et de votre aide.
J'ai une macro faite de plusieurs bouts de codes que j'ai regroupé.
Voici la macro :
Je pense que vos connaisances vous auront permis de comprendre la macro. Si non, elle me permet de récupérer une valeur sur ma 1ère feuille (Formulaire) en A2 pour la copier dans la 1ère cellule libre de la colonne A sur ma 2ème feuille (Base de données). La macro est déclenchée via un bouton sur ma feuille "Formulaire".
Les modifs que je souhaite consistent à vérifier si ma saisie faite en A2 sur le "Formulaire" existe déjà dans ma colonne A de "Base de données". Si oui, message box avec message du genre "/!\Ce numéro est déjà enregistré/!\". Si le numéro n'éxiste pas, alors message box avec "Numéro enregistré. Merci.".
Je souhaite également que ma touche "entrée" est le même résultat que mon bouton "enregistrer" que j'ai sur ma feuille "formulaire". Est-ce faisable ?
Pour finir, j'utilise un lecteur de carte pour saisir mes numéros. Quand je passe ma piste magnétique, excel traduit un code à 37 caractères alors qu'il ne me faut que les 19 premiers (ex : 6275980186062824274=23125012500000000).
Existe-t-il une solution pour ne pas tenir compte des caractères à partir du égal (signe égal inclus) ?
Au pire, je peux trouver une autre solution pour limiter les caractères comme une fonction gauche mais s'il y a moyen de l'automatiser à la source...
J'espère avoir été assez clair dans mes explications et jespère que vous pourrez m'aider.
En tout cas, merci d'avance pour le temps que vous prendrez à lire ce post...
Bonne journée,
PS : cette macro a été faite sous 2007, fonctionnait jusqu'à mardi sur 2010 et doit fonctionner maintenant sur 2013...
Je viens vers vous car j'ai besoin de vos connaissances et de votre aide.
J'ai une macro faite de plusieurs bouts de codes que j'ai regroupé.
Voici la macro :
Code:
Sub transpose_dans_tableau()
'Compilé le 3 mars 2015 par Faver
'Atteindre le formulaire et mémoriser les données
Sheets("Formulaire").Select
Range("A2").Select
Selection.Copy
'Test pour déterminer la ligne où copier les infos dans le tableau
Sheets("Base de données").Select
valeurA2 = Range("A2").Value
If valeurA2 = "" Then
Range("A2").Select
Else
Range("A1").Select
Selection.End(xlDown).Select
ligne_active_base = ActiveCell.Row
Range("A" & ligne_active_base + 1).Select
'Mémorise le n° de la ligne où coller les données
ligne_active_base = ActiveCell.Row
'Collage des données
Range("A" & ligne_active_base).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
'Rendre vierge le formulaire
Sheets("Formulaire").Select
Range("A2").Select
Selection.ClearContents
Range("A2").Select
'Enregistre les modifications du fichier automatiquement
Workbooks("controle_n°_family_food.xlsm").Save
End Sub
Je pense que vos connaisances vous auront permis de comprendre la macro. Si non, elle me permet de récupérer une valeur sur ma 1ère feuille (Formulaire) en A2 pour la copier dans la 1ère cellule libre de la colonne A sur ma 2ème feuille (Base de données). La macro est déclenchée via un bouton sur ma feuille "Formulaire".
Les modifs que je souhaite consistent à vérifier si ma saisie faite en A2 sur le "Formulaire" existe déjà dans ma colonne A de "Base de données". Si oui, message box avec message du genre "/!\Ce numéro est déjà enregistré/!\". Si le numéro n'éxiste pas, alors message box avec "Numéro enregistré. Merci.".
Je souhaite également que ma touche "entrée" est le même résultat que mon bouton "enregistrer" que j'ai sur ma feuille "formulaire". Est-ce faisable ?
Pour finir, j'utilise un lecteur de carte pour saisir mes numéros. Quand je passe ma piste magnétique, excel traduit un code à 37 caractères alors qu'il ne me faut que les 19 premiers (ex : 6275980186062824274=23125012500000000).
Existe-t-il une solution pour ne pas tenir compte des caractères à partir du égal (signe égal inclus) ?
Au pire, je peux trouver une autre solution pour limiter les caractères comme une fonction gauche mais s'il y a moyen de l'automatiser à la source...
J'espère avoir été assez clair dans mes explications et jespère que vous pourrez m'aider.
En tout cas, merci d'avance pour le temps que vous prendrez à lire ce post...
Bonne journée,
PS : cette macro a été faite sous 2007, fonctionnait jusqu'à mardi sur 2010 et doit fonctionner maintenant sur 2013...
Dernière édition: