Comment enregistrer et incrementer une suite dans Excel

Bonjour

Avant tout, je souhaite a chacun une bonne et heureuse année 2014.

J'ai besoin d'aide pour un tableau un peu particulier. Sur la premiere page, je selectionne differents item pour arriver a une suite de nombre et de lettres. Je clique sur ENREGISTRER (bouton VBA).

Sur la 3eme feuille, s’incrémente tous les numéros en vérifiant l'absence de doublons.

L’idéal est de regarder mon tableau pour le comprendre.

Merci d'avance pour votre aide.

Bonjour KillerJo

Ou est le code que tu as commencé à faire ??

A+

Biiiiiin, a vrai dire il n'y en a pas ... Je pige pas grand chose au VBA et compte sur des gens plus competants que moi (vu mon niveau ca ne doit pas etre tres compliqué ...)

Bonjour,

Merci de bien vopuloir éditer le titre de ton sujet afin qu'il soit relatif à ta demande.

Au besoin, lis ces quelques lignes qui t'aideront dans tes demandes et réponses sur ce forum --> https://forum.excel-pratique.com/annonces/explications-et-regles-a-respecter-t13.html

Merci de ta participation

Cdrlt

J'avance, mais mon ignorance m'est prejudiciable ...

Pour copier le contenu de mes cellules vers la feuille "ENREGISTREMENT", je fais une macro (j'enregistre mes copiers/collers et j'affecte cette maco au bouton).

1er probleme, si la bonne cellule n'est pas selectionnée (entourage noir epais) sur la feuille de destination, le resultat n'est pas bon.

2eme probleme, si je verouille la feuille, l'enregistrement ne fonctionne pas

Je pense que je ne vais pas trouver, donc si je peux avoir l'aide de quelqu'un, je vous en serait reconnaissant.

J'ai ajouté à ma macro le fait d'effacer les cellules pour avoir un document vierge pour le prochain utilisateur. Il faut donc que les numeros enregistrés à la suite sur la page "ENREGISTREMENT" se fassent d'une certaine facon. Le plus recent toujours en haut de la pile.

Ci joint le fichier modifié.

Re,

En premier en feuille Acceuil, supprime les cellules fusionnées. En VBA cela ne provoque que des soucis dans l'exécution.

Donc défusionne les lignes 6 et 7 pour ne garder que tes références en ligne 6.

Sur cette base, les données à compléter doivent se trouver en ligne 8 et les références à tranférer en ligne 12

Ensuite utilise le code ci-après en lieu et place de ta macro5

Sub test()
'Macro Dan le 03/01/14
Dim dlg As Integer
For i = 2 To 18 Step 2
    If Cells(8, i) = "" Then MsgBox "veuillez compléter la référence " & Cells(6, i) & " en ligne 8 ": Exit Sub
Next
With Sheets("Enregistrement")
    dlg = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    Sheets("Acceuil").Range("B12:P12").Copy
    .Range("B" & dlg).PasteSpecial Paste:=xlPasteValues
    Sheets("ACCEUIL").Range("B8:R8").ClearContents
End With
End Sub

Si ok, lors de ta réponse, clique sur le V vert à coté du bouton EDITER pour cloturer le fil

A te relire

Salut Dan

Merci pour ta reponse, qui repond en partie a ma demande.

Les +:

*J'aime les avertissements en cas de cellule non completée

*J'aime la rapidité d'execution

*Elle repond exactement a ce que je veux sur la page ACCEUIL

Les -:

*Lors du report sur la page ENREGISTREMENT, n'apparait pas les initiales du redacteur

*Les numeros ne s'incrementent pas (A chaque fois que je fais un nouveau numero et que je l'enregistre, il remplace le precedant). Il faut que le dernier numero attribué soit en tete de liste

*Je ne sait pas s'il y a une verification des doublons

En tous cas merci deja pour ce que tu as fait !!! J'aimerais te donner des pistes pour participer a ton travail, mais n'y connaissant pas grand chose, je ne suis malheuresement pas d'une grande aide ...

re,

*Lors du report sur la page ENREGISTREMENT, n'apparait pas les initiales du redacteur

Il faut modifier cette ligne de code --> Sheets("Acceuil").Range("B12:R12").Copy

*Les numeros ne s'incrementent pas (A chaque fois que je fais un nouveau numero et que je l'enregistre, il remplace le precedant). Il faut que le dernier numero attribué soit en tete de liste

Dans ton fichier en feuille enregistrement on ne voit que des lettres (r). d'où les questions

  • quel numéro mets-tu
  • Combien de caractères ?
  • de quel numéro pars-tu ?
  • tu dis en tête de liste; donc toujours en ligne 11 ??
  • la révision c'est aussi un chiffre ??

Pour les doublons, il faut voir cela plus tard.

A te relire

Dan

Pour les intiales, j'avais modifié de moi meme. Ta reponse confirme mon initiative.

Pourla deuxieme partie de la question:

  • Localisation: C'est une suite de 3 lettres qui definissent le lieu concerné par le plan
  • Numero de plan: Commence a 50 jusqu'a 999 (pour eviter d'avoir un doublon avec un plan deja existant avant la mise en place de ce systeme)
  • Revision: Commence de A jusqu'a Z

La suite de chiffres/lettres obtenu est donc mon umero de plan. Les intiales ne sont là que pour connaitre le createur/dessinateur de ce plan.

Lorsque je clique sur le bouton d'enregistrement de la feuille ACCEUIL, mon numero se met sur la ligne 11 de la feuille ENREGISTREMENT, et passera sur la ligne 12 lorsque je creerais un autre numero.

J'espere avoir repondu a tes questions.

re

Pour faire la recherche de doublons facilement il faut que la reférence soit dans une cellule en feuille enregistrement.

On pourrait la mettre en colonne Q. Bien sur on n'enlève pas les infos dans les autres colonnes.

Ton avis ?

Autre question, la date se met automatiquement lors de la création ??

A te relire

Pour la reference, on peut la mettre en Q sans probleme, à la limite en blanc, comme ca elle n'apparait pas pour l'utilisateur lambda.

Pour la date j'aimerais qu'elle se mette à la création, mais je suppose que ce doit etre quelque chose de "facile" a faire pour moi, donc je ne veux pas t'emcombrer de ce "detail". Apres s'il n'y a pas de date, je m'en fiche un peu. C'est pas l'info essentielle.

re,

Il est plus simple de poster ton fichier en retour avec les modifications effectuées.

Vois donc ton fichier ci-joint et fais quelques tests puis dis moi

Amicalement

Alors là je dis BRAVO !!! On a le versification des doublons, l’incrémentation dans la liste, je m'incline.

Par contre 2 remarques:

  • Si je verrouille la feuille (pour éviter les fausses manips), ça ne fonctionne plus
  • Les numéros s’incrémentent à l'envers (le dernier numéro se met en bas, au lieu de se mettre toujours sur la ligne 11

J'abuse si je te demande de voir ces points ?

Cela dit profite de ton week end, c'est formidable ce que tu fais !!!

Re,

- Les numéros s’incrémentent à l'envers (le dernier numéro se met en bas, au lieu de se mettre toujours sur la ligne 11

Dans le fichier posté avant, remplace la macro CREATION par celle ci-dessous

Sub Creation()
'Macro Dan le 06/01/14
Dim i As Byte
For i = 2 To 18 Step 2
    If Cells(8, i) = "" Then MsgBox "veuillez compléter la référence " & Cells(6, i) & " en ligne 8 ": Exit Sub
Next

Call doublons
With Sheets("Enregistrement")
    .Unprotect
    .Range("A11").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    .Range("A11") = Date
    Sheets("Acceuil").Range("B12:R12").Copy
    .Range("B11").PasteSpecial Paste:=xlPasteValues
    .Range("Q11") = ref
    .Protect
End With
With Sheets("ACCEUIL")
    .Range("B8:R8").ClearContents
    .Range("B8").Select
End With
End Sub

Pour la protection, j'ai rajouté également deux instructions mais sache que c'est une simple protection avec mot de passe à blanc. Donc si tu souhaites mettre un mot de passe spécifique il faudra peut être repenser le code

Si ok, clique sur le V vert à coté du bouton EDITER lors de ta réponse afin de cloturer le fil de discussion

Amicalement

Nikel. J'ai cherché a verouiller la 1ere page (toujours pour eviter les fausses manips), mais je ne sais pas ou le faire (j'ai regardé dans ta macro, je vois bien le UNPROTECT PROTECT, mais je ne sais pas ou le mettre ...).

Pour le reste, c'est GENIAL TOP MOUMOUTE !!! Le verouillage est parfait (pas besoin de mot de passe), l'incrementation et le reste est au top. Vraiment du super boulot. 1000 mercis !!!

(si tu peux juste me dire comment proteger la 1ere feuille ce serait l'apotheose)

re,

killerjo a écrit :

Nikel. J'ai cherché a verouiller la 1ere page (toujours pour eviter les fausses manips), mais je ne sais pas ou le faire (j'ai regardé dans ta macro, je vois bien le UNPROTECT PROTECT, mais je ne sais pas ou le mettre ...).

Tu parles de la feuille ACCUEIL je suppose.. ? si oui, il faut faire gaffe à laisser libres les cellules que l'on doit compléter.

Un code comme ceci à placer dans THISWORKBOOK, via l'éditeur VBA

Private Sub Workbook_Open()
Sheets("accueil").Protect
End Sub

Vérifie l'orthographe de ta feuille avec ce que tu mets dans le code.

Maintenant avant tout, il faudra déprotéger les cellules qui peuvent être remplies.

Attention avec le protect sans mot de passe car si tu vas dans menu Fichier, puis clique sur Autorisation et tu peux ôter la protection d'une feuille facilement. Bon à savoir tout de même

A te relire

Alors, je t'explique. J'ai ouvert Visual Basic et collé ton code (en selectionnant "OPEN" dans le menu en haut a droite.)

La feuille est bien verouillée (avec les cellules concernées déverouillées). Je tape mon numero, mais au moment de cliquer sur "Enregistrer et Incrementer", J'ai affiché "ERREUR 1004: La cellule ou le graphique est protegé ou en lecture seule etc ..."

Par contre mon numero est bien positionné et enregistré à sa place sur la feuille ENREGISTREMENT.

Je te joins le fichier que tu voie par toi meme.

Re,

Normal car ta feuille ACCUEIL est protégée et il faut adapter le code

Dans la macro Creation, remplace

.Range("B8:R8").ClearContents

par

.Range("B8,D8,F8,H8,J8,L8,N8,P8,R8").ClearContents

Juste un truc, dans la création je ne vois pas de protection de la feuille comme suggéré dans mon post précédent. Vérifie donc

Amicalement

Merci, mais la protection (si on parle de la meme chose) est faite dans THISWOORKBOOK (j'y ai eu acces en ouvrant VISUAL BASIC, et là il y avait un THISWORKBOOK). Elle est faite sans mot de passe, puisque tu me dit que c'est un peu plus compliqué a faire (et comme tu as deja tellement fait que je vais savoir me satisfaire de ce travail enorme deja accompli !!!)

On parle de la meme chose ?

re

Non on ne parle pas de la même chose. Moi je te parlais de la protection sur la feuille Enregistrement que j'avais placé dans le fichier que j'ai posté. Mais oublie, ce que j'ai dit précédemment, je vois que la protection est bien dans la macro.

Je ne devais pas encore être éveillé....

c'est un peu plus compliqué a faire

Non mais bon si tu veux utiliser des vrais mots de passe, il faut pas les oublier... (souvent le cas...) ou alors on les cache bien dans les codes. Mais bon à quoi bon, qui va s'amuser à voir cela et peut être changer le fonctionnement du fichier.

Vu la simplicité de ton fichier, le mieux est encore de conserver une copie en lieu sûr.

A te relire

Rechercher des sujets similaires à "comment enregistrer incrementer suite"