Feuille stock , mais feuille codé

bonjour

je vous sollicite encore une fois concernant l' excel et le VBA

j'ai un fichier avec 3 feuille, comme 3ieme feuille " stock" qui est géré par la feuille 1 et le feuille 2

y a t il une possibilité pour que la feuille 3 "stock" ai un mot de passe. pour que les utilisateurs de se fichier ne vois pas le stock??

ci joint mon fichier

merci d'avance

Bonjour à tous,

Bonjour iliyes,

Peux-tu préciser ta question ?

Il est toujours possible de masquer, mais il suffit de savoir quoi. Est-ce la feuille "Stock" entière ou des colonnes de cette feuille que tu veux cacher à l'utilisateur ?

A +

Cordialement.

Bonjour Papou-net

merci pour ta réactivité

j’aimerais que la feuille STOCK (je parle de l'onglet) soit visible mais accessible avec un mot de passe des qu'on clic déçu, en quelque sort personne ne vois ni a accès a cette feuille ( sauf ceux ayant le mot de passe

j'ai essayé de la caché, mais à l'ouverture du fichier le script VBA plante

merci pour ton aide

RE :

Voici ton fichier modifié.

J'ai ajouté un bouton "Gérer le stock" sur la feuille "Entree en Stock". Un clic sur ce bouton affiche une fenêtre de saisie de mot de passe (UserForm1"). Les caractères entrés sont remplacés par des astérisques ("*"). Le mot de passe est inscrit dans le module Activate du Userform1 : je l'ai fixé provisoirement à "0000"., Tu peux le modifier dans le même module, mais il te faudra auparavant déprotéger le classeur manuellement. La protection agit donc sur le classeur, ce qui empêche l'affichage pur et simple de la feuille "Stock" qui, elle, n'est pas protégée.

Sur la feuille "Stock", j'ai également ajouté un bouton ("Terminer") qui masque la feuille, reprotège le classeur et te renvoie sur la feuille "Entree en Stock".

Espérant que cette solution te conviendra.

Bon réveillon.

Cordialement.

bonjour

merci pour ton aide

c'est exactement ce que je veut, mais il y as un problème

quand la feuille STOCK est caché, et que je veut faire rentrer ou faire sortir un produit, le fichier plante !!!

merci encore une fois pour ton aide

bonjour et bonne année 2013, pleins de bonnes choses au FORUM EXCEL-PRATIQUE

bonjour Papou-net

le résultat de ce que tu m'a fait est ce que je veut, mais il y a quelques petits soucis

si la feuille STOCK est fermé, je ne peu pas utiliser les autres feuilles

aussi si la feuille STOCK est caché et que je ferme le fichier, a sa réouverture il plante

merci pour votre aide habituelle

Bonjour à tous,

Bonjour Iliyes,

J'ai repris ton fichier, ça fonctionne mais à la fin de la macro j'obtiens un message d'erreur "Mémoire insuffisante".

J'avais déjà remarqué que ton code devait pouvoir être simplifié, notamment par élimination des nombreux Select parsemés çà et là.

J'ai donc besoin d'un peu de temps pour décortiquer la procédure et retrouver les tenants et les aboutissants.

Heureusement, le réveillon est passé et, malgré les stigmates, je vais m'y atteler.

Cordialement.

re

je ne saurais comment vous remercier

je ne suis pas très calé en programmation , mais je me débrouille assez

des que j'aurais terminé la partie protection, j’attaquerais la partie code barres

merci pour tous

ps : j’attends de voir le résultat avec impatience

RE :

Ouf, enfin !

Voici le code que je te propose :

Sub Entreeenstock3_clic()
Dim F As Integer, Ref As Integer, D As Integer, I As Integer, J As Integer, S As Integer

'Coucou, s'il n'y a pas de produit de sélectionné, pas de stockage
If Range("L2").Value = 0 Then
  MsgBox "Si ce n'est trop vous demander," & vbNewLine & vbNewLine & "Veuillez incérer les références et leurs quantités.", vbCritical + vbOKOnly, "Coucou Abib"
  MsgBox "Ne pas oublier les prix d'achats," & vbNewLine & vbNewLine & "les prix de ventes et les dates de péremptions"
  Exit Sub
End If

Application.ScreenUpdating = False
'ThisWorkbook.Unprotect MdPasse
'Sheets("Stock").Visible = True

With Sheets("Entree en Stock")
  Ref = .Range("M2").Value
  J = .Range("K2").Value
  For F = 5 To Ref
    D = .Range("C" & F).Value
    I = D + 1
    S = .Range("D" & F).Value
    ' Copie de la quantité
    Sheets("Stock").Range("A1").Offset(D, 67) = S
    ' Copie de la quantité existante en stocké par jour
    Sheets("Stock").Range("A1").Offset(D, 68) = .Range("A1").Offset(D, J + J + 3)
    ' Mettre à jour la quantité de produit stocké
    Sheets("Stock").Range("BR" & I) = Sheets("Stock").Range("BP" & I) + Sheets("Stock").Range("BQ" & I)
    Sheets("Stock").Range("A1").Offset(D, J + J + 3) = Sheets("Stock").Range("BR" & I)
  ' Mettre à jour le stock existant dans les étalages
    'Copie du stock général
    Sheets("Stock").Range("A1").Offset(D, 67) = Sheets("Stock").Range("A1").Offset(D, 4)
    'Copie de la quantité achetée par le client et la déstocker du stock général
    Sheets("Stock").Range("A1").Offset(D, 68) = S
    Sheets("Stock").Range("BR" & I) = Sheets("Stock").Range("BP" & I) + Sheets("Stock").Range("BQ" & I)
    Sheets("Stock").Range("A1").Offset(D, 4) = Sheets("Stock").Range("BR" & I)
  ' Mettre à jour les prix d'achat et de vente des produits et dates de péremption
    ' Prix achat
    If .Range("F" & F) = "" Then
      MsgBox "Ne pas laisser le tarif vide, même si c'est le même prix."
      Exit Sub
    End If
    Sheets("Stock").Range("A1").Offset(D, 2) = .Range("F" & F)
    ' Prix vente
    If .Range("G" & F) = "" Then
      MsgBox "Ne pas laisser le tarif vide, même si c'est le même prix."
      Exit Sub
    End If
    Sheets("Stock").Range("A1").Offset(D, 3) = .Range("G" & F)
    ' Date de péremption
    If .Range("K" & F) = "" Then
      MsgBox "Tout produit a une date de péremption, veuillez la mentionner."
      Exit Sub
    End If
    Sheets("Stock").Range("A1").Offset(D, 78) = .Range("K" & F)
  Next F
  Sheets("Stock").Range("BP2:BR650").ClearContents
  .Range("C5:D32,F5:G32,K5:K32").ClearContents
End With

'Sheets("Stock").Visible = False
'ThisWorkbook.Protect MdPasse
Application.ScreenUpdating = True
End Sub

Tu constateras, pour commencer, qu'il est pratiquement deux fois plus court.

Comment j'y suis parvenu me diras tu ? Assez simplement ma foi :

Retiens qu'il est inutile de sélectionner des feuilles puis des cellules pour agir dessus, il suffit de les référencer dans chaque instruction. C'est ce que j'ai fait. Par ailleurs, j'ai condensé tes conditions If...Then car si un message d'erreur apparaît, c'est que la cellule est vide et donc il est inutile de retester dans une autre condition pour sortir de la procédure. Comme les copies de cellules n'opèrent que sur leurs valeurs, j'ai donc remplacé tous les Copy...Paste par un simple signe d'égalité.

Par ailleurs, la macro fonctionne sans déprotéger le classeur ni afficher la feuille Stock, ce qui répond à ton dernier souci. En tout cas ça marche sans erreur, j'ai testé. Si tu as un problème chez toi, il te suffira d'ôter l'apostrophe de commentaires sur les lignes concernées en début puis en fin de procédure. Sinon, n'hésite pas à les supprimer.

Dernier point : vérifie bien que les écritures se font dans les bonnes cellules car j'ai eu un peu de mal à suivre le déroulement, malgré les quelques commentaires que tu as mis et que j'ai conservé pour t'aider à mieux t'y repérer.

Dans l'attente de ton retour.

Bon courage et bonne soirée.

Cordialement.

merciiiiiiiiiiiiiiiiiiiiiiii

j'ai exactement ce qu'il me faut

j'ai du ajouter dans les deux autres bouton ' DÉSTOCKAGE ' et ' DÉSTOCKAGE SPÉCIAL ' cela :

' deproteger la feuille stock

Application.ScreenUpdating = False

ThisWorkbook.Unprotect MdPasse

Sheets("Stock").Visible = True

.la procédure

' proteger la feuille stock

Sheets("Stock").Visible = False

ThisWorkbook.Protect MdPasse

Application.ScreenUpdating = True

End Sub

et ma feuille est caché et avec un mot de passé

aussi , si ce n'est trop vous demander, ou bien m'orienter sur ce que j'ai fait envers le code barre

j'ai intégré dans la feuille ENTRE EN STOCK la colonne code barre ( aussi dans la feuille STOCK la colonne code barre )

moyennant une DOUCHETTE je voudrais améliorer mon fichier de GESTION DE SUPÉRETTE.

la feuille CODE BARRE est destinées pour cela

j'ai copié le code de EAN13 et EAN8 ùais cela ne fonctionne pas

merci d'avance

j'ai du ajouter dans les deux autres bouton ' DÉSTOCKAGE ' et ' DÉSTOCKAGE SPÉCIAL ' cela :

' deproteger la feuille stock

Application.ScreenUpdating = False

ThisWorkbook.Unprotect MdPasse

Sheets("Stock").Visible = True

.la procédure

' proteger la feuille stock

Sheets("Stock").Visible = False

ThisWorkbook.Protect MdPasse

Application.ScreenUpdating = True

End Sub

RE :

Si tu reprends le code des autres boutons, sur le même principe que celui que je t'ai transmis, tu pourras t'affranchir de ces manipulations de protection/déprotection.

Pour le problème des code-barres, j'y regarderai demain car il se fait tard.

Cordialement.

merci beaucoup

je ferais demain ce que tu a fait pour alléger mon VBA le lus possible

a demain

bonjour Papou-net

j'ai entrepris le fichier depuis le début et j'ai arrangé les étape de mon VBA suivant ce que tu m'a montré hier ( c'est vrais, et je t'en remercie, le module est beaucoup plus rapide qu'avant).

j'ai l'intention comme je te l'ai dit hier de lui intégrer la DOUCHETTE ( lecteur de code barre)

j'aimerais avoir une aide de votre part

merci d'avance

ci joint le nouveau fichier

bonjur

j'ai optimisé ma feuille, j'ai ajouté une macro qui netoie le fichier

merci pour votre aide concernant le code barre que j'attend

marci a vous

suite à la réalisation de mon fichier concernant une gérance de supérette, je suis parvenu a mettre tous au point concernant entrée et sortie de stock journellement et mensuellement

je veut améliorer mon fichier pour mettre au point le code barre

tous se passe dans la feuille CODES BARRE EAN13 EAN8

les fonction s EAN13 et EAN8 donnes des résultats différent et pas conforme

ayant copié une VBA dans le module 3 et 4( qui apparemment ne fonctionne pas), je n'ai pas pu avoir les bon résultats que quand le fichier de la VBA source est ouvert et que j'utilise la fonction suivante =EAN13.xls!EAN13(C3)

merci de me guider

83ean13.zip (26.16 Ko)

helpppppppppppppppp

quelqu'un pourras t il me guider vis a vis des codes barre et de leur insertion et fonctionnement sur excel????

merci

Bonjour

Au lieu de raaaaler donnes un fichier sans mot de passe

Oui j'ai vu suffit juste de valider

desolééééééééééééé

"0000" pour le code

merci

Bonjour

Pas de soucis particuliers

Je tapes la formule directement dans la cellule D3 de la page "CODES BARRES EAN13 EAN8" que je tire vers le bas

=EAN13(C3)

IL y a des hiéroglyphes (c'est la saison) dans les cellules

hieroglyphes v001
Rechercher des sujets similaires à "feuille stock code"