Public Sub ChekCase() Dim num As Single num = 1 For Each valeur In Range("A1:A90") If valeur <> "" Then SUITE CInt(valeur), num num = num + 1 Next End Sub Public Sub SUITE(valeur As Integer, num As Single) Range("A" & num).Activate If vbOK = MsgBox("Valider la saisie de " & valeur & " en " & ActiveCell.Address(False, False), vbOKCancel) Then ActiveCell.Offset(0, 9) = ActiveCell.Offset(0, 9) + valeur End If End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ERROR Dim Message As String, Valeur As Long With Target Select Case .Address(False, False) Case Is = "A1", "C1" GoTo SUITE Case Else Exit Sub End Select SUITE: Application.EnableEvents = False If .Address(False, False) = "A1" Then Valeur = .Value Message = "Valider la saisie de " & Valeur & " en " & .Address(False, False) If MsgBox(Message, vbYesNo + vbDefaultButton2) = vbNo Then GoTo FIN Range("B1").Value = Range("B1").Value + Valeur ElseIf .Address(False, False) = "C1" Then Valeur = .Value Message = "Valider la saisie de " & Valeur & " en " & .Address(False, False) If MsgBox(Message, vbYesNo + vbDefaultButton2) = vbNo Then GoTo FIN With Range("B1") If .Value < Valeur Then Message = "Attention : stock négatif" If MsgBox(Message, vbYesNo + vbDefaultButton2) = vbNo Then GoTo FIN End If .Value = .Value - Valeur End With End If FIN: .Value = Empty End With Application.EnableEvents = True Exit Sub ERROR: MsgBox Err.Description: Resume FIN End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("A1:A70")) Is Nothing Then SUITE Target.Address(False, False), InputBox("Entrer la valeur", "saisie") End If End Sub Public Sub SUITE(adresselecte As String, Valeur As String) If vbOK = MsgBox("Valider la saisie de " & Valeur & " en " & ActiveCell.Address(False, False), vbOKCancel) Then ActiveCell.Offset(0, 9) = ActiveCell.Offset(0, 9) + Valeur End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("A2:A70")) Is Nothing Then SUITE InputBox("Entrer la valeur", "saisie") End If End Sub Public Sub SUITE(Valeur As String) If vbOK = MsgBox("Valider la saisie de " & Valeur & " en " & ActiveCell.Address(False, False), vbOKCancel) Then ActiveCell.Offset(0, 9) = ActiveCell.Offset(0, 9) + Valeur End If End Sub
Code Visual Basic : Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("A2:A70")) Is Nothing Then SUITE InputBox("Entrer la valeur", "saisie") End If End Sub Public Sub SUITE(Valeur As String) ActiveCell.Offset(0, 9) = ActiveCell.Offset(0, 9) + Valeur End Sub
Donc tu peux saisir A1 et A21 en meme temps, le but et de juste copier "a1 et A21" et de le mettre ds j1 et j 21 et de resit a1 et a21