Sh4nks022
Messages postés5Date d'inscriptionjeudi 12 juin 2008StatutMembreDernière intervention13 juin 2008
-
12 juin 2008 à 18:54
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 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")
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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
Sh4nks022
Messages postés5Date d'inscriptionjeudi 12 juin 2008StatutMembreDernière intervention13 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 ?
Sh4nks022
Messages postés5Date d'inscriptionjeudi 12 juin 2008StatutMembreDernière intervention13 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é !
Sh4nks022
Messages postés5Date d'inscriptionjeudi 12 juin 2008StatutMembreDernière intervention13 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)
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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