continuer une macro après MsgBox......

Macpoy

XLDnaute Impliqué
bonsoir le forum,
bonne et heureuse année 2008 à vous et votre famille.

dans un classeur contenant (entre autre!!) les noms et adresses de clients, j'ai bricolé de quoi imprimé l'enveloppe qui me permettra de leur faire parvenir la facture et ainsi récupérer des pépettes !!!

je vais tenter d'être le plus clair possible :
j'ai une macro qui fonctionne bien............( si si ça arrive !!!) avec des étapes manuelles !! (je te clique ici !!! puis je te clique là !!!).
cette macro, j'aimerais la faire fonctionner après avoir fait une sélection dans une feuille.
du genre :
- par un bouton, j'active la feuille
- un msg me demande de choisir une cellule en colonne A
et après avoir sélectionné une cellule la macro continue.

bien sure la réponse rapide est : Worksheet_SelectionChange(ByVal Target As Range) + déroulement de la macro.

seulement, et c'est pour cela que je fait appel à votre ingéniosité cette feuille contient des données qui sont susceptibles d'être augmentées, donc selectionchange !!!! et là on ne se trouve pas forcément dans le déroulement "automatique" qui était souhaité !!!

ci-dessous, un début de macro qui ne sait pas s'arrêter avant d'avoir sélectionner

Code:
Sub Edition()
Dim quest
Client.Activate
MsgBox ("Selectionnez un Nom en colonne A !")

[SIZE=4][COLOR=Red]En fait c'est ici que je voudrais que la macro me permette de sélectionner avant de continuer[/COLOR][/SIZE]

If ActiveCell.Column() = "1" Then
    laplage = ActiveCell.Row
    With Client
        Enveloppe.Range("c6").Value = .Cells(laplage, 2).Value & " " & .Cells(laplage, 1).Value
        Enveloppe.Range("c7").Value = .Cells(laplage, 4).Value
        Enveloppe.Range("c8").Value = .Cells(laplage, 5).Value
    End With
    Enveloppe.Activate
    quest = MsgBox("Voulez vous imprimer ceci ?", vbYesNo)
    If quest = vbYes Then
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
Else
MsgBox ("Vous devez sélectionner un nom en colonne A !!!")
End If

End Sub

j'espère que tout ceci vous suffira pour tenter de comprendre mon petit pb.
dans le cas contraire, je tenterais de joindre le fichier sans données confidentielles.
merci d'avance.

-------------------------------
fait que chaque heure de ta vie soit un souvenir pour demain.
 

skoobi

XLDnaute Barbatruc
Re : continuer une macro après MsgBox......

Bonsoir,

essaye ceci:

Code:
Sub Edition()
Dim quest
Client.Activate
[B][COLOR="Red"]Set nom = Application.InputBox("Selectionnez un Nom en colonne A !", "Nom?", Type:=8)[/COLOR][/B]


If [COLOR="Red"][B]nom[/B][/COLOR].Column() = "1" Then
    laplage = [COLOR="Red"][B]nom[/B][/COLOR].Row
    With Client
        Enveloppe.Range("c6").Value = .Cells(laplage, 2).Value & " " & .Cells(laplage, 1).Value
        Enveloppe.Range("c7").Value = .Cells(laplage, 4).Value
        Enveloppe.Range("c8").Value = .Cells(laplage, 5).Value
    End With
    Enveloppe.Activate
    quest = MsgBox("Voulez vous imprimer ceci ?", vbYesNo)
    If quest = vbYes Then
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
Else
MsgBox ("Vous devez sélectionner un nom en colonne A !!!")
End If

End Sub
 

Lord Nelson

XLDnaute Occasionnel
Re : continuer une macro après MsgBox......

Salut,

Une idée en passant :
Tu pourrais convenir que le clic droit dans la colonne A lance la confection de l'enveloppe.
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then
    laplage = Target.Row
    With Client
        Enveloppe.Range("c6").Value = .Cells(laplage, 2).Value & " " & .Cells(laplage, 1).Value
        Enveloppe.Range("c7").Value = .Cells(laplage, 4).Value
        Enveloppe.Range("c8").Value = .Cells(laplage, 5).Value
    End With
    Enveloppe.Activate
    quest = MsgBox("Voulez vous imprimer ceci ?", vbYesNo)
    If quest = vbYes Then
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
    Cancel = True

End If
End Sub

A+
Horatio
 

Macpoy

XLDnaute Impliqué
Re : continuer une macro après MsgBox......

bonsoir le forum, skoobi, Lord Nelson,
encore une fois, ce site est la rencontre des passionnés et de l'Excellence !!!
merci à vous deux.

Une idée en passant :
Tu pourrais convenir que le clic droit dans la colonne A lance la confection de l'enveloppe.

j'ai oublié de préciser que travaillait pour une blonde !!! et qu'en conséquence, moins il y à de manip à faire plus je suis tranquil sur l'utilisation de ce petit prog.

merci beaucoup skoobi, ton code est presque bon, j'ai juste rajouté de quoi ne pas sortir de la sub tant que la sélection n'était pas en A.

Code:
Sub Edition()
Dim quest
Client.Activate

[SIZE=4][COLOR=Red]On Error Resume Next[/COLOR][/SIZE]
[SIZE=4][COLOR=Red]1[/COLOR][/SIZE]  Set nom = Application.InputBox("Selectionnez un Nom en colonne A !", "Nom?", Type:=8)


If nom.Column() = "1" Then
    laplage = nom.Row
    With Client
        Enveloppe.Range("c6").Value = .Cells(laplage, 2).Value & " " & .Cells(laplage, 1).Value
        Enveloppe.Range("c7").Value = .Cells(laplage, 4).Value
        Enveloppe.Range("c8").Value = .Cells(laplage, 5).Value
    End With
    Enveloppe.Activate
    quest = MsgBox("Voulez vous imprimer ceci ?", vbYesNo)
    If quest = vbYes Then
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
Else
MsgBox ("Vous devez sélectionner un nom en colonne A !!!")
[SIZE=4][COLOR=Red]GoTo 1[/COLOR][/SIZE]
End If

si toute fois l'utilisateur change d'avis comment sortir de cette macro ???
car pour le moment le bouton annuler ou la croix ne le permettent pas !!!

merci beaucoup à tous les deux.


--------------------------
fait que chaque heure de ta vie soit un souvenir pour demain !!
 

tirex28

XLDnaute Occasionnel
Re : continuer une macro après MsgBox......

Bonsoir,

Code:
Sub Edition()
    Dim nom As Range
    On Error Resume Next
    Do
        Set nom = Application.InputBox("Selectionnez un Nom en colonne A !", "Nom?", Type:=8)
        If nom Is Nothing Then
            Exit Do
        Else
            If nom.Column = 1 Then
                'Traitement
                Exit Do
            Else
                MsgBox ("Vous devez sélectionner un nom en colonne A !!!")
                Set nom = Nothing
            End If
        End If
    Loop
End Sub

Cordialement,

Tirex28/
 

Macpoy

XLDnaute Impliqué
Re : continuer une macro après MsgBox......

bonjour le forum, skoobi, Lord Nelson, tirex28,

merci beaucoup à tous je crois que je vais pouvoir livrer ce petit prog à mon amie.

est il possible, sur ce site, de marquer la discussion comme étant résolue ?
si oui comment faire ?
 

Statistiques des forums

Discussions
312 505
Messages
2 089 098
Membres
104 030
dernier inscrit
Angy