Lancer un doc word à partir d'une MsgBox

Résolu
Sh4nks022 Messages postés 5 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008 - 12 juin 2008 à 18:54
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 13 juin 2008 à 18:49
Alors voila je débute tout juste
J'aimerais ouvrir un doc Word sachant que je travaille visual basic sous excel. J'ai réussi à faire fonctionner plus ou moins ma MsgBox et lorsque que je clique sur "oui" j'aimerais pouvoir ouvrir un document word existant.

#Déclarations

Dim Text As String
Dim Textvar As String
Dim A As Integer
Dim B As Integer
Dim wdApp As New Word.Application
Dim wdDoc As Word.Document

 #Worksheet

Sub Worksheet_Activate()

Text = "Voulez vous passer la "
Textvar = ""
A = 2
B = 2
Titre = "  Planning du jour  "

    For B = 2 To 40 Step 1
   
        For A = 2 To 16 Step 1
           
            If Cells(A, B) = Cells(1, 1) Then
            Textvar = Cells(A, 1)
            Text = Text + Chr(13) + Textvar
            End If
                     
        Next A

    Next B

Boite = MsgBox(Text, 4 + 48, Titre)
If nomquelconque = vbYes Then
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Open("C:\Documents and Settings\proprietaire\Mes documents\Mes dossiers\UKL\commande.doc")

 

End If

End Sub

Horizon pas net, reste à la buvette

6 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2008 à 20:30
salut,

voilà tes explications (pense à F1, tout y est)

Textvar = ""
' Textvar vaut vbNullString, donc aucun caractères


A = 2
B = 2
' tes varibales A et B valent 2


Titre = "  Planning du jour  "
' ta variable Titre vaut   Planning du jour


    For B = 2 To 40 Step 1
    ' Une boucle, qui attribue la valeur de 2 à 40 pour la variable B, avec un pas de 1
    ' d'ailleurs, le Step 1 est inutile, vu que par défaut il va de 1 en 1
   
        For A = 2 To 16 Step 1
        ' Une boucle, qui attribue la valeur de 2 à 16 pour la variable A, avec un pas de 1
        ' d'ailleurs, le Step 1 est inutile, vu que par défaut il va de 1 en 1
           
            If Cells(A, B) = Cells(1, 1) Then
            ' si la cellule B2, puis B3 .. jusqu'à B16, ensuite C2, C3.. etc est égale à la cellule A1 alors :
           
                Textvar = Cells(A, 1)
                ' Ta variable Textvar vaudra la cellule A2, ou A3, ou.. jusqu'à A16
                Text = Text + Chr(13) + Textvar
                'Text = lui même + retour a la ligne + ce que vaut Textvar
               
            End If
        Next A
    Next B

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
Sh4nks022 Messages postés 5 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008
12 juin 2008 à 19:02
Et oui escusez moi !
Ma question est est-ce que cela vient de ma variable "if" qui n'est pas complète ou je n'ai pas assez renseigné le fait qu'il faut ouvrir word ?

Merci d'avance

Sh4nks022.
0
Sh4nks022 Messages postés 5 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008
12 juin 2008 à 20:01
Escusé pour ce sujet !!
j'ai zappé de renommé ma variable If nomquelconque = vbYes Then ...
Je l'ai donc remplacé par "Boite" et oh magie ça marche le c** !

Par contre si quelqu'un pouvait m'expliqué vite fait mon code à partir de

Textvar = ""
à
Next B

Si c'est possible, c'est le code d'un pote que j'ai modifié !

Horizon pas net, reste à la buvette
0
Sh4nks022 Messages postés 5 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008
12 juin 2008 à 20:47
Merci Mortalino ;)

Horizon pas net, reste à la buvette
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sh4nks022 Messages postés 5 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008
13 juin 2008 à 18:41
J'aurais une autre question, concerant la variable B

For B = 2 To 40 Step 1

Si je la change en For B = 3 To 41 Step 2
Elle devrait normalement commencé à la 3ème colonne et passé à la 5ème ensuite non ?!

Et dans cette partie là:
    If Cells(A, B) = Cells(1, 1) Then
    Textvar = Cells(A, 1)
    Text = Text + Chr(13) + Textvar
    End If

Mortalino me dit que textvar vaudra la cellule A2, ou A3, ou.. jusqu'à A16
Mais est-ce qu'il est possible de renseigné aussi dans le textvar les cellules B2 et B3 jusqu'a Z2 et Z3 avec un saut de 2 colonnes à chaque fois? (B2->D2->F2)

Horizon pas net, reste à la buvette
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
13 juin 2008 à 18:49
Salut,

Elle devrait normalement commencé à la 3ème colonne et passé à la 5ème ensuite non ?!

Oui, c'est exactement ça, tu peux faire des Step 2 ou 3 ou 0.1 ou 0.5 et même -1 ou encore -2

Mais est-ce qu'il est
possible de renseigné aussi dans le textvar les cellules B2 et B3
jusqu'a Z2 et Z3 avec un saut de 2 colonnes à chaque fois?
(B2->D2->F2)

Oui, c'est faisable :
Un truc du genre

For i = 2 to 26 Step 2
       For j = 2 to 3
          Textvar = Textvar & chr(13) & Cells(j, i).Value
    Next j
Next i

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
Rejoignez-nous