Entrée de données sur mauvaise feuille Excel

Bonjour,

J'ai un fichier Excel avec un petit programme VBA me permettant de faire des entrées en stocks. Problème, je veux que mes données soient rentrées dans l'onglet SAISIE DE DONNEES quand je consulte la page BILAN DE STOCKAGE. Malgré ma programmation, quand j'ouvre mon Userform et que je me place dans l'onglet Bilan les entrées se font dans la page BILAN DE STOCKAGE. Je me place dans cette onglet car je consulte les références.

Ci-joint ma programmation:

'Pour le formulaire

'Pour la liste déroulante Date

Private Sub ComboBox1_Change()

Dim Ligne As Long
Dim I As Integer

If Me.ComboBox1.ListIndex = -1 Then Exit Sub

Ligne = Me.ComboBox1.ListIndex + 2

ComboBox1 = Ws.Cells(Ligne, "A")

For I = 1 To 6
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
Next I
'Pour le bouton Nouveau Relevé de cote
End Sub
Private Sub CommandButton1_Click()

Dim A As Integer

If MsgBox("Confirmez-vous l'insertion de ce nouveau relevé ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
A = Sheets("SAISIE DE DONNEES").Range("A65536").End(xlUp).Row + 1
'Pour placer le nouvel enregistrement à la première ligne de tableau non vide

Range("A" & A).Value = Now

If IsNumeric(TextBox7) = True Then
Range("B" & A).Value = Val(TextBox7)
Else
Range("B" & A).Value = (TextBox7)

End If

'Range("B" & A).Value = Val(TextBox7)
Range("E" & A).Value = Val(TextBox1)
Range("F" & A).Value = Val(TextBox2)
Range("G" & A).Value = Val(TextBox4)
Range("H" & A).Value = Val(TextBox5)

End If


End Sub

'Pour le bouton Modifier

Private Sub CommandButton2_Click()

Dim Ligne As Long
Dim I As Integer

If MsgBox("Confirmez-vous la modification de saisie ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
If Me.ComboBox1.ListIndex = -1 Then Exit Sub

Ligne = Me.ComboBox1.ListIndex + 2

Ws.Cells(Ligne, "I") = ComboBox1

For I = 1 To 6
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
End If
Next I
End If

End Sub

Private Sub CommandButton3_Click()

Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox4.Value = ""
Me.TextBox5.Value = ""
Me.TextBox7.Value = ""
Me.ComboBox1.Value = ""
End Sub
'réinitialiser le terminal

'Passage de texte à nombre

Sub multiplie()
pourcentage = 1
For Each c In Range("B:H")
c.Value = c.Value * pourcentage
Next c
End Sub

Merci d'avance!

Si besoin je vais essayer de joindre le fichier Excel complet mais il est trop lourd pour l'instant.

Bonjour, effectivement aucune précision sur la feuille à utiliser lors de la validation des données .... excel prend donc la feuille qui est active :

Exemple :

Private Sub CommandButton1_Click()

Dim A As Integer

If MsgBox("Confirmez-vous l'insertion de ce nouveau relevé ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
'Pour trouvver le numéro de la dernière ligne A vous indiquez bien le nom de feuille
A = Sheets("SAISIE DE DONNEES").Range("A65536").End(xlUp).Row + 1
'Pour placer le nouvel enregistrement à la première ligne de tableau non vide

'A partir d'ici vous effectuez vos range sans indication de feuille. 
Range("A" & A).Value = Now
Il faut donc remplacer tous vos range par Sheets("SAISIE DE DONNEES").Range...
If IsNumeric(TextBox7) = True Then
Range("B" & A).Value = Val(TextBox7)
Else
Range("B" & A).Value = (TextBox7)

End If

'Range("B" & A).Value = Val(TextBox7)
Range("E" & A).Value = Val(TextBox1)
Range("F" & A).Value = Val(TextBox2)
Range("G" & A).Value = Val(TextBox4)
Range("H" & A).Value = Val(TextBox5)

End If

End Sub

bonjour,

Range("A" & A).Value = Now

If IsNumeric(TextBox7) = True Then
Range("B" & A).Value = Val(TextBox7)
Else
Range("B" & A).Value = (TextBox7)

End If

'Range("B" & A).Value = Val(TextBox7)
Range("E" & A).Value = Val(TextBox1)
Range("F" & A).Value = Val(TextBox2)
Range("G" & A).Value = Val(TextBox4)
Range("H" & A).Value = Val(TextBox5)

End If

ces instructions mettent les données dans la feuille active, précise le nom de la feuille souhaitée en indiquant le nom de la feuille avant l'instruction range ou utilise l'instruction with

with sheets("saisie de données")
.Range("A" & A).Value = Now

If IsNumeric(TextBox7) = True Then
.Range("B" & A).Value = Val(TextBox7)
Else
.Range("B" & A).Value = (TextBox7)

End If

'Range("B" & A).Value = Val(TextBox7)
.Range("E" & A).Value = Val(TextBox1)
.Range("F" & A).Value = Val(TextBox2)
.Range("G" & A).Value = Val(TextBox4)
.Range("H" & A).Value = Val(TextBox5)

end with

ou

sheets("saisie de données").Range("A" & A).Value = Now

If IsNumeric(TextBox7) = True Then
sheets("saisie de données").Range("B" & A).Value = Val(TextBox7)
Else
sheets("saisie de données").Range("B" & A).Value = (TextBox7)

End If

'Range("B" & A).Value = Val(TextBox7)
sheets("saisie de données").Range("E" & A).Value = Val(TextBox1)
sheets("saisie de données").Range("F" & A).Value = Val(TextBox2)
sheets("saisie de données").Range("G" & A).Value = Val(TextBox4)
sheets("saisie de données").Range("H" & A).Value = Val(TextBox5)

end with

Bonjour

Merci d'utiliser les balises de code (dans la barre de menu --> </>) lorsque vous postez un code. Cela permet notamment de reprendre votre code pour effectues des tests ou d'éviter de parfois devoir le recopier lorsqu'il n'y a pas de fichier.

Cordialement

Merci pour vos réponses, j'ai pu régler mon problème!

Rechercher des sujets similaires à "entree donnees mauvaise feuille"