XL 2013 (resolu)message de suivant

grisan29

XLDnaute Accro
bonsoir a tous
j'ai un petit stock a gerer et pour cela quand j'ajoute un article, j'ai un message qui me dit
Code:
MsgBox"Nouveau produit inséré"
mais je voudrais une suite et je ne la connais pas
donc quand l'article est insérer au lieu de fermer directement le msgbox c'est que le clic sur ok demande en plus "si on veux ajouter un autre article"si ou ce message se ferme et lors de l'ajout il s'ouvre indéfinient tant que le bouton "non " n'as pas été actionner
une histoire de vb yes et vbno je pense
 
C

Compte Supprimé 979

Guest
Bonsoir Grisan29 ;-)

Un truc du style
VB:
  If MsgBox("Nouveau produit inséré", vbInformation + vbYesNo, "TITRE") = vbYes Then
    ' Boucle tant que la réponse est oui
   Do While MsgBox("Voulez-vous ajouter un autre article ?", vbQuestion + vbYesNo, "TITRE") = vbYes
    ' Code si réponse est oui
   Loop
  End If

A+
 

grisan29

XLDnaute Accro
bonjour BrunoM45
merci de ta réponse:) , mais l'appui sur le bouton ok est infini le message ne se ferme pas alors comme ton code me plait
je l'ai légèrement modifié et c'est bon maintenant:) voici le code
Code:
Do
        If MsgBox("Nouveau produit inséré", vbYesNo, "ajouter") = vbYes Then
            Exit Do ' => Si réponse = Oui on sort de la boucle
       End If
    Loop While 1 = 1 ' => Boucle infinie
   MsgBox "insérer un autre)"
ce qui clos ce post
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Pascal

En cliquand sur non on reste toujours dans la boucle. Moi j'ai fait comme ceci

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lig As Integer, rep
If Not Intersect(Target, Range("h4:h100")) Is Nothing Then
Range("h2").Activate
rep = MsgBox("Nouveau produit à insérer ?", vbYesNo, "ajouter")
Do
If rep = vbNo Then
End
Exit Do
        ElseIf rep = vbYes Then
            Exit Do ' => Si réponse = Oui on sort de la boucle
       End If
    Loop While 1 = 1 ' => Boucle infinie
   MsgBox "insérer un autre article"
lig = Range("b65536").End(xlUp).Row + 1
  Cells(lig, 2) = Cells(lig - 1, 2) + 10
End If
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re Pascal

Private Sub Worksheet_SelectionChange() , c'est le module de la feuille. Mais tu peux changer par Worksheet_Change()
sans oublier Application.EnableEvents = False et =True en mettant la condition. Par exemple

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Set plage = Range("d5:d" & Range("d65536").End(xlUp).Row)

For each cel in plage
If  IsEmpty(cel.offset(0, 0) )  Then
rep = MsgBox("Nouveau produit à insérer ?", vbYesNo, "ajouter")
Do
If rep = vbNo Then
End
Exit Do
        ElseIf rep = vbYes Then
            Exit Do ' => Si réponse = Oui on sort de la boucle       End If
    Loop While 1 = 1 ' => Boucle infinie   MsgBox "insérer un autre article"
lig = Range("b65536").End(xlUp).Row + 1
  Cells(lig, 2) = Cells(lig - 1, 2) + 10
End If
End If
Next cel
Application.EnableEvents = True
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir Pascal

EDIT: Bonsoir Bruno, I'm Sorry. :(

Alors comme ceci en l'ajotant dans ta macro, bienentendu à adapter à ton cas.

VB:
lig = Range("a65536").End(xlUp).Row + 1
  For i = 1 To 14
  For k = 2 To lig
Range(Cells(k, i), Cells(k, i)) = Range(Cells(k - 1, i), Cells(k - 1, i)) + 10
Next k
Next i
 
Dernière édition:

grisan29

XLDnaute Accro
bonsoir Lone-wolf
tu n'as pas a etre désolé je ne l'avais pas précisez:(donc j'ai intégrer ton code dans celui de 18h40 car comme tu me le dit ce n'est pas ma macro mais la tienne
je ne sais pas su j'ai été assez clair
donc les produits se mettent en colonnes de A a N et ensuite l'un sous l'autre

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lig As Integer, rep
Dim i As Integer, k As Integer
'===============================
lig = Range("a65536").End(xlUp).Row + 1
  For i = 1 To 14
  For k = 2 To lig
Range(Cells(k, i), Cells(k, i)) = Range(Cells(k - 1, i), Cells(k - 1, i)) + 10
Next k
Next i
'====================================
rep = MsgBox("Nouveau produit à insérer ?", vbYesNo, "ajouter")
Do
If rep = vbNo Then
End
Exit Do
        ElseIf rep = vbYes Then
            Exit Do ' => Si réponse = Oui on sort de la boucle
      End If
    Loop While 1 = 1 ' => Boucle infinie
  MsgBox "insérer un autre article"
lig = Range("b65536").End(xlUp).Row + 1
  Cells(lig, 2) = Cells(lig - 1, 2) + 10
End If
End Sub
et cela fonctionne bien:)merci a toi et bonne soirée euro


ceci clos le post
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 535
dernier inscrit
moimeme1