Numéro automatique à partir d'un formulaire de saisie

Bonjour, j'ai une petite base E

14test-base.xlsm (10.97 Ko)

Bonjour, j'ai une petite base Excel et souhaiterais à partir d'un formulaire de saisie incrémenter un numéro automatique pour chaque nouvelle saisie d'emprunt. (dans le champs "Numéro d'emprunt". Par la même occasion, basculer toutes les données saisies dans le formulaire emprunt. Est-ce possible ? En vous remerciant par avance.

Bonjour, un grand merci pour ce retour rapide, c'est génial. Encore mille merci.

Bonjour Arthuro, je rencontre quelques petits soucis après avoir recopié la formule VBA sur mon fichier.

Ma feuille (f2) est sous forme de tableau, donc l'enregistrement de f1 à f2 se fait à partir de la fin du tableau.

Aussi serait-il possible de supprimer automatiquement l'enregistrement précédent du formulaire "saisie données emprunt" f1 pour repartir sur un formulaire vierge, par contre j'ai des cellules avec des formules si possible à garder.

Si je peux me permettre un dernier petit point, je ne trouve pas la commande du bouton Enregistrer dans "Formulaire d'emprunt" (ZoneTexte 1).

Encore un grand merci par avance.

Bien cordialement

Bonjour,

Ma feuille (f2) est sous forme de tableau, donc l'enregistrement de f1 à f2 se fait à partir de la fin du tableau. Le tableau de le f2 ne serait-t--il pas un tableau structuré par hasard? Ou bien alors, les cellules en dessous de la ligne des titres ne sont pas ne sont vides.

***************************************************************************

Si je peux me permettre un dernier petit point, je ne trouve pas la commande du bouton Enregistrer dans "Formulaire d'emprunt" (ZoneTexte 1). Le bouton peut-être copié dans n'importe quelle feuille.

***************************************************************************

Aussi serait-il possible de supprimer automatiquement l'enregistrement précédent du formulaire "saisie données emprunt" f1 pour repartir sur un formulaire vierge, par contre j'ai des cellules avec des formules si possible à garder.

Alors déposez le fichier avec les formules car j'ignore tout de leur existence.

***************************************************************************

Bonjour,

Le tableau de le f2 ne serait-t--il pas un tableau structuré par hasard? Ou bien alors, les cellules en dessous de la ligne des titres ne sont pas ne sont vides. Oui tout à fait il s'agit d'un tableau structuré que j'utilise pour effectuer des filtres sur une autre feuille.

Le bouton peut-être copié dans n'importe quelle feuille. Ok, merci,

Alors déposez le fichier avec les formules car j'ignore tout de leur existence. Très bien, je mets le fichier en copie, les cellules orange sont des formules.

Encore merci pour votre réactivité.

21base-test-1.zip (109.91 Ko)

Un tableau structuré n'est pas un tableau classique.

Si vous utilisez un tableau structuré, il ne faut pas lui attribuer un nombre de lignes fixes (ici, vous l'avez fixé à la ligne 500, donc la prochaine ligne disponible sera la 501ème et donc, les recopies iront en bas du tableau)

Puisqu'il est vide, il faut le dimensionner à $A$2:$T$3, et au fur et à mesure que des lignes viendront s'ajouter, il adaptera sa taille automatiquement.

Les formules dans la feuilles "Saisie données emprunt" Ok, c'est bien, mais je ne les vois pas. Si vous souhaitez exporter les données dans la feuille "Formulaire Emprunt", il est inutile de recopier les formules, seulement les valeurs renvoyées par ces formules.

Le bouton d'enregistrement est copié dans la feuille "Formulaire Emprunt"

Cdlt

Un grand merci pour tout ces précieux conseils, je vous transmets le fichier avec les formules du formulaire "saisie données emprunt". Elles font aussi office d'autres feuilles du fichier que je n'ai pas mis dans le fichier que je vous ai transmis.

Bien à vous

Bonjours,

Voici le fichier avec les modifications demandées:

Cdlt

Bonjour Arturo,

merci pour ce retour, ça fonctionne sur le fichier envoyé, mais lorsque je copie dans mon fichier j'ai un message en cliquant sur enregistrer "erreur d'exécution 9" l'indice n'appartient pas à la sélection : Set f1 = Sheets("Saisie données emprunt")

Un grand merci par avance

erreur sur bouton enregistrer

Bonjour,

Vérifiez le nom de vos feuilles : ils doivent correspondre EXACTEMENT (majuscules/minuscules/accents/espaces...) à ceux indiqués dans le code, ici Saisie données emprunt. Si votre feuille a un nom un peu différent, copiez/collez le dans les guillemets du code surligné en jaune de façon à avoir une équivalence parfaite. Ensuite relancez la macro.

Bonjour Saboh et merci pour ce retour, non malheureusement ce n'est pas ça.c'est la bonne orthographe et j'ai aussi fait un copié des feuilles des fichiers.

Ah, étrange… C'est pourtant ce qu'indique l'erreur.

Essayez

Set f1 = ThisWorkbook.Worksheets("Saisie données emprunt")

Si cela ne fonctionne pas, je vous laisse voir avec Arturo qui a écrit la macro.


Une dernière petite astuce qui me vient en tête : vous pouvez regarder le nom de code de la feuille dans l'explorateur de projets VBA :

image

Dans mon exemple, le nom de code de la feuille "Saisie données emprunt" est Feuil1. Donc dans le code vous pouvez aussi écrire

Set f1 = Feuil1

Peut-être que le nom de la feuille du fichier réel contient un espace à la fin soit "Saisie données emprunt ", cas très fréquent, en apparence le nom semble correct mais le nombre de caractères n'est pas le même;

remplacez ceci:

Set f1 = Sheets("Saisie données emprunt")
Set f2 = Sheets("Formulaire Emprunt")

par cela:

Set f1 = Trim(Sheets("Saisie données emprunt"))
Set f2 = Trim(Sheets("Formulaire Emprunt"))

Bonsoir à vous 2,

tout d'abord merci à Saboh pour les conseils pour la feuil1, mais je n'y suis pas parvenue.

Arturo, j'ai remplacé les formules mais rien n'y a fait.

Pour tester, j'ai copié toutes les feuilles de mon fichier sur le dernier fichier envoyé duflot-numero-automatique-a-partir-d-un-formulaire-de-saisie-2-1.xlsm (257.23 Ko) et là oui ça fonctionne mais je ne comprends pas pourquoi. Bon je vais poursuivre !!!

Un grand merci pour votre aide et surtout votre patience.

Bonjour,

Pour tester, j'ai copié toutes les feuilles de mon fichier sur le dernier fichier envoyé duflot-numero-automatique-a-partir-d-un-formulaire-de-saisie-2-1.xlsm (257.23 Ko) et là oui ça fonctionne.

Si ça marche sur un et pas sur l'autre, c'est donc qu'il y a bien une différence quelque part!

Le fichier que vous avez déposé est celui qui marche, pas celui qui ne marche pas,

Cdlt

Bonjour Arturo,

Si ça marche sur un et pas sur l'autre, c'est donc qu'il y a bien une différence quelque part!

Oui, mais je ne suis pas parvenue à trouver le problème, certainement la numérotation des noms des feuilles ?

Le fichier que vous avez déposé est celui qui marche, pas celui qui ne marche pas,

Oui

Bonjour,

mais je ne suis pas parvenue à trouver le problème, certainement la numérotation des noms des feuilles ?

La numérotation des feuilles n'a rien à voir, puisque on se sert de leur nom.

Si je reprends votre réponse de mercredi à 13h54, le nom de la feuille ne correspond pas.

    Set f1 = Sheets("Saisie données emprunt")

Sur le fichier réel, faites un double-clic sur l'onglet de la feuille en question, n'y a t-il pas un espace en trop à la fin ou au début du nom de la feuille?

Bonjour Arturo,

effectivement le problème était bien là, merci à vous 2 pour votre vigilance.

Si je peux me permettre, je souhaiterais vous poser une dernière question.

Le copié du f1 vers le f2 s'ajoute sans problème désormais, par contre si je supprime les enregistrements du f2, les nouveaux enregistrements se positionnent sur la ligne suivante : par ex, je supprime les lignes C3 à C5 du f2 les prochains enregistrement commenceront à C6 malgré que les lignes C3 à C5 sont vides.

Me suis-je bien exprimée ?

Encore un grand merci !

Le problème(si on peut appeler ça un problème) c'est que le tableau de la feuille "Formulaire Emprunt" est un tableau structuré, donc à chaque ajout d'un enregistrement, il mémorise ses nouvelles dimensions en intégrant les nouvelles lignes. Le fait d'effacer le contenu du tableau ne le redimensionne pas.

2 solutions:

-soit vous convertissez le tableau en plage et effacez le contenu, (comme c'est un tableau de sauvegarde, un tableau structuré ne se justifie pas forcément)

-soit vous réinitialisez le tableau avec un nombre de lignes restreint.

A vous de voir.

ici, le fichier avec le tableau converti en plage:

Rechercher des sujets similaires à "numero automatique partir formulaire saisie"