Chercher et Modifier sur une autre feuille

Bonjour à tous,

Me voici nouvelle venue sur ce site, et bien contente d'y être. Vos différents sujets et discutions m'ont déjà beaucoup aidée.

Je suis une totale novice en VBA, mais je m'y intéresse afin de soulagé mes tâches administratives.

J'ai déjà un petit programme qui permet de gérer le stock. Je peux y introduire des nouveaux articles, et en changer les quantités.

Cela fonctionne parfaitement, lorsque mon bouton "Entrée / Sortie" se trouve dans la même feuille que l'inventaire du stock.

Ce que j'aimerais maintenant, c'est de créer une autre feuille "Menu" ou se trouveraient mes Commandes, et que les modifications se fassent dans la deuxième feuille "Inventaire stock". ... Mais impossible d'y arriver :(

Je vous joint mon fichier. Quelqu'un aurait-il la gentillesse de m'aider?

Je vous remercie d'avance, et vous souhaite une bonne journée.

Marie86

Bonjour,

Chercher et modifier sur une autre feuille se fait exactement de la même manière que tu as fais pour le formulaire Nouvel Article : il ajoute bien un nouvel article sur la feuille 2...

A mon avis ton classeur est un peu trop succinct pour pouvoir envisager quoi que ce soit.

Quand aux formulaires s'ils ont le mérite de te servir à quelque chose tant mieux, mais personnellement je ne peux pas leur envisager une utilisation professionnelle.

Si tu souhaites améliorer l'existant, il faudra repartir de zéro... Et il n'est pas prouvé que ça va te soulager beaucoup dans tes taches administratives.

La programmation, c'est un peu comme la comptabilité, on y passe souvent beaucoup de temps et de cheveux blancs...

Pour en parler avec un peu plus de pertinence, voire en MP

A+

Bonjour Galopin01,

Merci pour ta réponse rapide.

Effectivement, le formulaire "Nouvel article" fonctionne. Par contre le formulaire "Entrée/Sortie" lui, ne fonctionne plus une fois qu'il est sur une autre feuille. Et j'ai pourtant essayé la même syntaxe que pour le formulaire "Nouvel article" ... mais rien n'y fait :(

Aurais-tu une solution pour ce deuxième formulaire?

Merci déjà ;)

Marie86

Faire comme pour l'autre formulaire : Préciser la Feuil1

With Feuil1

.Cells...

ou

Feuil1.Cells(...
A=

Bonsoir,

Désolée de revenir à la charge ... mais je suis vraiment débutante... Je ne vois pas ou dans mon code, appliquer ta consigne, dans la mesure ou nulle part, un ligne commence par cell.

Voici une partie du code que j'utilise:

____________________________________________________________________________

Private Sub TextBox1_AfterUpdate() 'prend en compte la valeur dans la TextBox1
Dim pl As Range 'déclare la variable pl (Plage)
Private li As Integer 'déclare la variable li (LIgne)
Private ajout As Boolean 'déclare la variable ajout

'définit la plage pl (cellules éditées de la colonne C)
Set pl = Range(Cells(3, 3), Cells(Application.Rows.Count, 3).End(xlUp))

On Error Resume Next 'gestion des erreurs, en cas d'erreur passe à la ligne suivante
li = pl.Find(Me.TextBox1.Value, , xlValues, xlWhole).Row 'définit la ligne li (si aucune occurrence trouvée, génère une erreur)

If Err > 0 Then 'condition : si une erreur a été générée
If ajout = True Then 'condition : si la variable ajout est "Vrai"
Exit Sub 'sort de la procédure
End If

'sélectionne le texte de la TextBox1
Me.TextBox1.SelStart = 0 'début de la sélection
Me.TextBox1.SelLength = Len(Me.TextBox1.Value) 'longueur de la selection
MsgBox "Ce code n'existe pas"
Exit Sub 'sort de la procédure

End If 'fin de la condition

TextBox2.Text = Cells(li, 10) 'affiche la quantité
TextBox3.Text = Cells(li, 4) 'affiche la description

Me.TextBox2.SetFocus 'place le curseur dans la TextBox2 (Quantité)
Me.TextBox2.SelStart = 0 'début de la sélection
Me.TextBox2.SelLength = Len(Me.TextBox2.Value) 'longueur de la sélection

End Sub

---------------------------------------------------------------------------------------------------------------------------

J'ai essayé la fonction With, ou feuil1. Mais ça ne marche pas.

Peux-tu m'éclairer par rapport à mon code?

Merci d'avance, et bonne soirée.

Marie86

bonsoir,

Private Sub TextBox1_AfterUpdate() 'prend en compte la valeur dans la TextBox1
Dim pl As Range 'déclare la variable pl (Plage)
Private li As Integer 'déclare la variable li (LIgne)
Private ajout As Boolean 'déclare la variable ajout

'définit la plage pl (cellules éditées de la colonne C)
With Feuil1
   Set pl = .Range(.Cells(3, 3), .Cells(Application.Rows.Count, 3).End(xlUp))

   On Error Resume Next 'gestion des erreurs, en cas d'erreur passe à la ligne suivante
   li = pl.Find(Me.TextBox1.Value, , xlValues, xlWhole).Row 'définit la ligne li (si aucune occurrence trouvée, génère une erreur)

   If Err > 0 Then 'condition : si une erreur a été générée
   If ajout = True Then 'condition : si la variable ajout est "Vrai"
   Exit Sub 'sort de la procédure
   End If

   'sélectionne le texte de la TextBox1
   Me.TextBox1.SelStart = 0 'début de la sélection
   Me.TextBox1.SelLength = Len(Me.TextBox1.Value) 'longueur de la selection
   MsgBox "Ce code n'existe pas"
   Exit Sub 'sort de la procédure

   End If 'fin de la condition

   TextBox2.Text = .Cells(li, 10) 'affiche la quantité
   TextBox3.Text = .Cells(li, 4) 'affiche la description
End With
Me.TextBox2.SetFocus 'place le curseur dans la TextBox2 (Quantité)
Me.TextBox2.SelStart = 0 'début de la sélection
Me.TextBox2.SelLength = Len(Me.TextBox2.Value) 'longueur de la sélection
End Sub

Code non testé.

A+

Bonsoir Galopin01,

Code testé et fonctionnel!!

Maintenant que j'analyse ce que tu as modifié, j'ai compris tes précédents conseils.

Un tout grand Merci pour ta rapidité de réponse et ta disponibilité.

Une bonne soirée et un bon week-end.

Marie86

Rechercher des sujets similaires à "chercher modifier feuille"