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 SubCode 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