Excel, boite de dialogue, fichiers&macro

Résolu
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici une demande un peu ambitieuse...

J'ai vu sous excel que l'on pouvait créer des boite de dialogues. Serait-il possible de créer ce style :

1/ Entré la référence du produit
2/ le nom du client
3/ la date
4/ la référence en interne
5/ une dizaine de case à cocher

Ensuite :

chaque case coché ferait référence à une ou deux feuilles de calcul excel situées dans un dossier quelconque. Il faudrait que ce modèle excel soit modifié en fonction des paramètre saisi en 1/ 2/ 3/ 4/ puis imprimé.

Merci aux plus courageux !

A voir également:

19 réponses

Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Cette boite de dialogue comme tu dis est une Userform avec des contrôles Textbox, Combobox, case à cocher etc ...et cela se traite en VBA (visual basic). Vu ton post tu ne connais pas et dans ce cas ce sera très difficile. Le but d'un forum est de donner quelques conseils mais pas d'écrire un programme surtout par post cela prendrait beaucoup trop de temps et nous sommes bénévoles.

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
C'est exact, mais je rebondis sur ta citation de profil avec la graine du savoir qui est magnifique et je peux dire modestement que je suis persévérant.
Je continue donc, mon stage s'arrête le 31 juillet et j'aurais bien aimé partir en ayant modifié ça.

A+
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Merci bcp pour les liens, je travail dessus.
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour à tous,
Bonjour Mike-31 et bonjour michel_m,

On apprend vite quand on est booster par les bons sites. Je vous remercie.
J'ai encore quelques difficultés. Voici le bout de code que j'ai pour transferer les données saisies dans les textbox 1/2/3/4/ vers des liens placés dans un tableau word.

Private Sub CommandButton3_Click()

If CheckBox1 = True Then

Dim WordApp As Word.Application
Dim WordDoc As Word.Document

Set WordApp = CreateObject("word.application") 'ouvre session word et le fichier voulu
Set WordDoc = WordApp.Documents.Open("C:\lien") 'ouvre document Word
WordApp.Visible = False 'word masqué pendant l'operation

'dans le document word, il faut avoir placé des signets aux endroits qu'on veut remplir
'à l'endroit de chaque signet qui se trouve dans le fichier word on va inscrire le contenu des cellules
WordDoc.Bookmarks("RappEss").Range.Text = Cells(1, A)
WordDoc.Bookmarks("Client").Range.Text = Cells(2, A)
WordDoc.Bookmarks("Ref").Range.Text = Cells(3, A)
WordDoc.Bookmarks("Date").Range.Text = Cells(4, A)

WordApp.Visible = True 'affiche le document Word
'WordDoc.PrintOut 'si on veut imprimer

'WordDoc.Close True 'si on veut fermer le document word en sauvegardant les données
'WordApp.Quit 'ferme la session Word

End If

Unload Me
End Sub


Le problème est que
Dim WordApp As Word.Application
n'est pas reconnu, une boite de dialogue apparait et il est écris "Erreur de compilation: type définit par l'utilisateur non défini".
J'ai pourtant vérifié sous word, la référence "Microsoft Word xx.x Object Library" est bien cochée (c'est la "Microsoft Word 12.0 Object Library")

Un coup de pouce svp.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Salut,

Il ya 2 références à cocher!

Microsoft Word X.y object library
'et Microsoft Visual Basic For Applications Extensibility x.y

xy étant variables svt version office et Win

au passage
A dans cells(1,A), c'est quoi ?
si A est la colonne il faut écrire cells(1,1)

d'autre part j'aurais collecté les valeurs à copier dans Word au départ du code juste après les déclarations style
copie1=cells(1,1)

car une fois que tu écris set worddoc, le document actif est Word et Word ne connait pas "cells"
donc
WordDoc.Bookmarks("RappEss").Range.Text = copie1


enfin-ouf j'aurais marqué le nom du doc Word
Set WordDoc = WordApp.Documents.Open("C:\lien\tondoc.doc")
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
encore un truc

La méthode "quit" de wordapp risque de ne pas être appréciée par certains antivirus comme Macafee: cocher alors toujours accepter

enfin tu risques aussi d'avoir un bug (vieilles version office ?)au lancement de word

     'déclaration à changer
     dim wordapp as object

     '....
     '....

    ' lancement de Word
    ' gestion de l'erreur "activeX" d'après archives MPFE Laurent Longre
     On Error Resume Next
        Set wordapp= CreateObject(class:="Word.Application")
    On Error GoTo 0
    If Cible Is Nothing Then
        Set wordapp= New Word.Application
    End If
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai coché "microsoft Visual Basic for App Extensibility 5.3" dans le vba excel et le vba word mais le problème survient tjs.

" Erreur de compilation : Type défini par l'utilisateur non défini "

J'ai aussi essayé de remplacer
Dim WordApp As Word.Application
par le code que tu m'as fournis mais cela n'a pas marché.

Sinon toutes tes intuitions étaient bonnes :
- Je compile sur une machine qui a word et excel 2007 mais c'est destiné a un poste qui possède la version 2003.
- A était pour la colonne
- faire les copie 1,2,3 etc au préalable est très malin.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour tous,
Tu n'a pas coché la bonne bibliothèque, comme le dit Michel_m c'est ...
Microsoft Word 12.0 Object librairy
Aucune autre bibliothèque n'est nécessaire.
J'ai tester et ça fonctionne sous le 2000 et 2007
Et vaudrait mieux ajouter avant ton Unload..
WordApp.Quit 
Set WordApp = Nothing

Pour être certain de libérer la mémoire.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
re,

Ci joint vieille maquette faite sous office 2000 tu as les références de cochées (dans outils-reférences de VBE)dans la feuille
http://www.cijoint.fr/cjlink.php?file=cj201007/cijP7CCrr2.zip

je regarde pour la 2° bibliothèque
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour le lien.
La bibliothèque fonctionne c nickel.
Le problème maintenant à l'air d'être une mauvaise cible de signet (Erreur d'execution '5941' le membre de la collection n'existe pas ; et ça surligne
WordDoc.Bookmarks("RappEss").Range.Text = copie1
)

Je veux pas perdre tout mon crédit alors je vais chercher.
+
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Comment faire pour que la référence 'Microsoft Visual Basic For Applications Extensibility x.y reste tjs cocher dans tout document ?

Il me semble que c'est à cause de ça que j'ai le message suivant " Variable objet ou variable bloc With non definie" et le debogeur désigne
.Selection.TypeText (insert1)


Sinon à quoi sert les points ajouté a chaque début de ligne ?
ex :
.Visible = True
.ActiveDocument.Save
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

Hier, j'avais pas mal bidouillé dans mon fichier au cours de nos messages et je t'ai envoyé un truc foireux (ca marchait au départ et j'ai réussi à le planter comme d'hab)

Je t'envoie un autre exemple plus simple
http://www.cijoint.fr/cjlink.php?file=cj201007/cijIijFzsy.zip



le point en début de ligne permet de ne pas répéter le nom de l'objet avec lequel tu travailles

With tonobject
.visible=true
.activedocument.save
end with

ci joint capture d'écran avec les ref installées...
http://www.cijoint.fr/cjlink.php?file=cj201007/cijNktBJGA.doc
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Salut

j'ai aussi essayé un autre truc :
Private Sub CommandButton2_Click()

If CheckBox1 = True Then

    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document

    Set WordApp = CreateObject("word.application")
    WordApp.Visible = True    'mettre False pour garder Word masqué
    Set WordDoc = WordApp.Documents.Open("C:\..\*.docx")
    

    WordDoc.Tables(1).Columns(2).Cells(1).Range.Text = Range("A1")
    WordDoc.Tables(1).Columns(4).Cells(1).Range.Text = Range("A2")
    WordDoc.Tables(1).Columns(2).Cells(3).Range.Text = Range("A3")
    WordDoc.Tables(1).Columns(2).Cells(2).Range.Text = Range("A4")
    WordDoc.Tables(1).Columns(4).Cells(2).Range.Text = Range("A5")
    
    ActiveDocument.PrintPreview
    
    'WordDoc.Close True 'ferme le document Word en enregistrant les modifications
    'WordApp.Quit 'ferme l'application Word
 
 End If
     
  MsgBox "fini"
End Sub


c'est assez simple et pour l'instant ca marche.
C'est étrange aussi, pcq m sans faire les copies au préalable word reconnait Range("A1")
Comme à la fin je vise env une 30 aine de checkbox il faut que le fichier word et le fichier excel attaché à une checkbox se modifient vite et et que le dossier s'imprime rapidement.
( Il faut que je rajoute dedans
WordApp.Quit 
Set WordApp = Nothing
et le code archives MPFE Laurent Longre)

Je commence a bidouiller des boucles sur les checkbox mais je pense pas que ce soit la solution vu que chaque checkbox est attaché a un fichier propre.

Sinon j'essaye de remplacer le tableau par une localisation signets.

Je voudrais aussi (c'est encore loin) avoir un aperçu général du futur dossier imprimer.
Si checkbox 1,2,6 etc.. cochés alors apercu de 1,2,6 etc à la suite.
Seulement les illusions s'arretent vite vu qu'il s'agit de fichiers complètement séparés..
J'y réfléchirais plus tard.

Merci à toi en tout cas d'être aussi présent ça boost à fond !
0

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

Posez votre question
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Re,
Essaye d'envoyer un MP à argixu, voir s'il à encore l'exemple ou qu'il puisse te le réexpliquer.
A+
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Bon, avant de terminer mon programme il faut que je passe par autre chose.
J'ai une liste de fichier MODELE EXCEL dans lesquels je dois modifier des lettres etc et ensuite les réenregistrer en tant que modèle excel.
Ca donne ca :

Dim Fich As String
Const chemin = "C:\Documents and Settings\Pierre-Amaury\Bureau\Masques communs IFTH\"
Fich = Dir(chemin & "*.xlt")
Do While Fich <> ""
Workbooks.Open chemin & Fich

'là c'est le code saisi à la souris

Workbooks(Fich).Close True
Fich = Dir
Loop
End Sub


Ce code marche très bien pour des fichiers xls (déjà essayé) mais quand je veux l'appliquer à des .xlt ça affiche " erreur d'éxécution '9': L'indice n'appartient pas à la séléction. " et
Workbooks(Fich).Close True
est surligné.

Inspiration divine ?..
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour à tous,

j'espère avoir une reponse assez rapide m par ce chaud moi de juillet.

Je suis toujours occupé avec mes checkbox, j'ai réussi a avoir un code qui fonctionne pour 1 checkbox.

détail : 1/je rentre des infos dans 5 textbox
2/ je coche 1 checkbox sur 20
3/ comme elle est cochée au moment ou je clique sur ok le texte qui a été saisi dans les 5 textbox se recopie à 5 signet respectifs. C'est signets se trouvent dans un fichier word.
4/ le fichier s'imprime
5/ le fichier se ferme sans enregistrer les modifs.

Le problème est le suivant, quand je copie colle ce code sous les autres checkbox un message d'erreur apparait :

"Erreur de compilation : déclaration existante dans la portée en cours"
et cette ligne est surlignée :
Dim WordApp As Word.Application


Voici le code en question :
If CheckBox1 = True Then   
    Dim WordApp As Word.Application   
    Dim WordDoc As Word.Document   
    Dim i As Byte   
    Set WordApp = CreateObject("word.application") 'ouvre une session Word   
    Set WordDoc = WordApp.Documents.Open("C:\cible\doc_Word_du_checkbox1.doc") 'ouvre le document Word   
    WordApp.Visible = False   'Word est masqué pendant l'opération   

    For i = 1 To 5   
           'les signets du document Word sont nommés Signet1 à Signet5   
    ActiveDocument.Bookmarks("Signet" & i).Range.Select   
    WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(i, 1) 'copie des cellules A1 à A5 (c'est à dire le texte des textbox) à l'emplacement des signets word   
    Next i   

    WordApp.Visible = True    'affiche le document Word   
    'WordDoc.Close False 'ferme le document word sans sauvegarder   
    'WordApp.Quit 'ferme la session Word   
End If   

If CheckBox2 = True Then   
    Dim WordApp As Word.Application   
    Dim WordDoc As Word.Document   
    Dim i As Byte   
    Set WordApp = CreateObject("word.application")   
    Set WordDoc = WordApp.Documents.Open("C:\cible\doc_Word_du_checkbox2.doc")   
    WordApp.Visible = False   'Word est masqué pendant l'opération   

    For i = 1 To 5   
    ActiveDocument.Bookmarks("Signet" & i).Range.Select   
    WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(i, 1)   
    Next i   

    WordApp.Visible = True    'affiche le document Word   
    'WordDoc.Close False 'ferme le document word sans sauvegarder   
    'WordApp.Quit 'ferme la session Word   
End If   

Et ainsi de suite avec les autres checkbox


merci de me faire partager vos intuitions
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

essaies plutôt
Dim WordApp As object

puisque un peu plus loin tu as

Set WordApp = CreateObject("word.application")


0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
En modifiant avec Dim WordApp As Object cela marche pour Une chexbox mais dès que je souhaite en cocher 2 le problème persiste :

"Erreur de compilation : déclaration existante dans la portée en cours"
et cette ligne est surlignée :
Dim WordApp As Object 


J'ai essayé de modifier le nom comme ceci :
Dim WordApp2 As Object 
 Dim WordDoc2 As Word.Document 

et l'erreur se reproduit juste à la ligne en dessous :
"Erreur de compilation : déclaration existante dans la portée en cours" et surligne :
 For i = 1 To 5 


En fait c'est comme si j'avais fait 2 déclaration de variables donc une en trop mais je vois pas comment en faire qu'une.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Tes déclarations ne sont à faire qu'une seule foisdans la procédure! généralement, on les saisit juste sous le titre de la macro

d'autre part es tu sûr qu'il faille quitter wordapp à chaque checkbox ?
a la fin de chaque checkbox tu libères seulement worddoc par
set worddoc=nothing après avoir sauvegardé ton transfert
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Peut-être une exemple ??
Sub VVV()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim i As Byte

    Set WordApp = CreateObject("word.application") 'ouvre une session Word
    Set WordDoc = WordApp.Documents.Open("C:\cible\doc_Word_du_checkbox1.doc")
    WordApp.Visible = False   'Word est masqué pendant l'opération'ouvre le document Word
    If CheckBox1 = True Then
        For i = 1 To 5
            'les signets du document Word sont nommés Signet1 à Signet5
            ActiveDocument.Bookmarks("Signet" & i).Range.Select
            WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(i, 1) 'copie des cellules A1 à A5 (c'est à dire le texte des textbox) à l'emplacement des signets word
        Next i
    End If

    If CheckBox2 = True Then
        For i = 1 To 5
            ActiveDocument.Bookmarks("Signet" & i).Range.Select
            WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(i, 1)
        Next i
    End If

    'Et ainsi de suite avec les autres checkbox

    WordDoc.Close False 'ferme le document word sans sauvegarder
    WordApp.Quit 'ferme la session Word
    Set WordDoc = Nothing
    Set WordApp = Nothing
End Sub

A+
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
En fait comme il existe un document word et un excel bien spécifique à chaque chekbox je ne peux pas en ouvrir qu'un seul et le modifier en fonction des 20 checkbox.
Par contre je peux ouvrir l'application word et excel et les fermer qu'a la fin.

cette partie du code se répète à chaque chexbox, y a t il un moyen de faire un raccourci ?
 For i = 1 To 5
            ActiveDocument.Bookmarks("Signet" & i).Range.Select
            WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(i, 1)
        Next i
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Tu veux raccourcir ?
Remplace tout le code de l'userform par
Option Explicit  
Dim Check As Collection  


Private Sub Appliquer_Click()  
Dim WordApp As Word.Application  
Dim WordDoc As Word.Document  
Dim i As Byte  
Dim e As Integer  
      
    Set WordApp = CreateObject("word.application") 'ouvre une session Word  
    WordApp.Visible = False   'Word est masqué pendant l'opération'ouvre le document Word  
    For e = 1 To Check.Count  
        If Check(CStr(e)) Then  
            Set WordDoc = WordApp.Documents.Open("C:\cible\doc_Word_du_checkbox" & e & ".doc")  
            For i = 1 To 5  
                'les signets du document Word sont nommés Signet1 à Signet5  
                ActiveDocument.Bookmarks("Signet" & i).Range.Select  
                WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(i, 1) 'copie des cellules A1 à A5 (c'est à dire le texte des textbox) à l'emplacement des signets word  
            Next i  
            WordDoc.Close False ' à vérifier ..  
        End If  
    Next e  
    WordApp.Quit 'ferme la session Word
    Set WordDoc = Nothing
    Set WordApp = Nothing
End Sub  

Private Sub UserForm_Initialize()  
Dim Chk As Control  
    Set Check = New Collection  
    For Each Chk In Me.Controls  
        If TypeOf Chk Is MSForms.CheckBox Then  
            Check.Add Chk, CStr(Chk.Tag)  
        End If  
    Next Chk  
End Sub 

Seule obligation, mettre les numéro de checkbox dans la propriété Tag des CheckBox
J'ai pas su vraiment tester je n'ai pas tes documents Word

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Je me demade bien à quoi sert ce code, tu modifie tes documents Word et ensuite tu les ferme sans sauver ?
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Ok alors là je suis impressionné, je digère pas encore toutes les commandes mais ca pourrait m etre très utile par la suite. Merci.
Le seul hic c'est que c'est toute la cible qui change à chaque fois pour une checkbox et non pas juste "checkbox xx"
ex :
"C:\cible1\doc_Word_du_checkbox1" .
"C:\cible2\doc_Word_du_checkbox2"
Pour y parvenir faudrait utiliser la recherche automatique de windows ce qui élève la difficulté (et en tout cas pour l'instant je ne m'en occupe pas).

Sinon une question bcp plus simple mais qui m'a deja fait chercher pendant plus de 2 heures :
j'ai 3 checkbox, je voudrais que 2 se décochent quand je coche la 3ème mais en "direct" sur l'UF.
Dans cet exemple les checkbox 1 et 2 sont décoché qu'après avoir cliquer sur commandbutton1 et non pas au moment ou checkbox3 est coché. Comment faire ?
Private Sub CommandButton1_Click()
If CheckBox3 = True Then
    CheckBox1 = False
    CheckBox2 = False
    MsgBox ("bien joué")
End If
If CheckBox1 = True Then MsgBox ("affiche le 1")
If CheckBox2 = True Then MsgBox ("affiche le 2")
End Sub


Bonne apétit
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut,
Essaye ceci, dans l'évènement click du checkbox correspondant (ici le 3) :
Private Sub CheckBox3_Click() 
If CheckBox3 = True Then 
    CheckBox1 = False 
    CheckBox2 = False 
    MsgBox ("bien joué") 
End If 
End Sub


ps : bon appétit
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Private Sub CheckBox3_Click()
    If CheckBox3 Then CheckBox2 = False: CheckBox1 = False
End Sub

Private Sub CommandButton1_Click()
    If CheckBox3 = True Then
        MsgBox ("bien joué")
    Else
        If CheckBox1 = True Then MsgBox ("affiche le 1")
        If CheckBox2 = True Then MsgBox ("affiche le 2")
    End If
End Sub

0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Concernant...
Le seul hic c'est que c'est toute la cible qui change à chaque fois pour une checkbox et non pas juste "checkbox xx"
Tu peu mettre les chemins complet (répertoirs etc.. dans une colonne d'une feuille quelconque, tu dis la feuille et la colonne et la 1ère cellulle renseignée et je te modifie le code précedant pour que ça fonctionne.
Par ex:
Feuil3
A1 = C:\cible1\doc_Word_du_checkbox1
A2 = C:\cible2\doc_Word_du_checkbox2
Etc..
A+

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Ca serait vraiment chic. j essaye de te preparer ca.

En attendant comment faire en sorte que si "signet5" n'existe pas dans le document word, le programme continue sans coller la valeur copié ?
Aussi, y a t il un moyen de rassembler des lignes de code sous un "plus" comme dans l'explorateur window ?

Merci à toi
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
question 1 : suffit de mettre un <On Error Resume Next>
Question 2 : pas compris
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Je dois rentrer chez moi et je n'ai pas de connexion internet. je retravail ca demain.
La deuxième question c'est en fait :
quand tu ouvre l'explorateur window standard, a gauche dans l'arborescence il y a des petits "+" dans un carré, quand on clique dessus ca déroule tous les sous dossiers.
est il possible de faire la même chose au sein d'un texte VBA ? Regrouper plusieur lignes sous une pour éclaircir un peu.

A demain
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Je suis de retour,

je t'ai tout préparé dans un fichier excel que tu trouveras ici : http://www.cijoint.fr/cjlink.php?file=cj201007/cij5et7Yv2.xls

Je reste à l'écoute.
A+
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Juste un petit up pour savoir si ta bien recu le message.
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Aphone ?
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Désolé mais il n'y avait plus de feedback sur les réponses.. (CCM qui rame depuis...)
Et je ne vais pas faire toute ron appli... !!
1/ on rentre les infos dans les 5 textbox (remarque : il s'agit de la date du jour dans le textbox4, possible de remplir en automatique? De laisser encore la saisie manuelle si l'on veut rentrer la date de demain?)
Mettre dans
Private Sub UserForm_Initialize()
    TextBox4 = Date
End Sub

Tu pourras toujours changer la date.

2°) Il n'y a RIEN dans l'UF tu n'a même pas commencer, voir les liens ou code donner pour déjà faire la collection de tes checkbox, sinon ça va devenir intenable..
La suite.. je verrais quand tu aurras avancé.
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Ce que j'ai déjà fait est placé en feuille 2.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Wouaaw, mais c'est pas là que tu doit mettre tes codes. :(
Le plus simple, tu va dans l'éditeur (Alt+F11)
tu affiche l'UserForm (celui où tu a mis tes textBox et boutons.
tu double clic sur un bouton et tu tombe sur le module où tu dois mettre les macro.
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
En fait normalement le code je le place dans l'usf en faisant clic droit puis code de l'usf dans l'explorateur de projet. Seulement là je voulais pas y mettre des chose inutiles c'est pour ça que je t'ai envoyé un usf vierge et mis le code en feuille 2.

Hormis ce quiproquo le code en question marche très bien mais c'est vrai qu'il devient intenable. Surtout quand on me demande s'il sera facile de modifier pour des gens qui n'ont jamais vu de vba excel le nombre de checkbox.
c'est pour ca que j'ai été séduit par ta colonne de cible dans une feuille et la collection.

Le problème c'est que j'ai beau étudier tes anciens posts et tes astuces j'ai encore du mal avec la collection d'objet checkbox. je continu de potasser quoi.

A+
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
en reprenant le code de cette réponse, le UF_Initialize, si tu exécute ce code c'est comme si tu n'avais qu'un seul checkbox que tu peu tester sauf qu'il a un index, en d'autre terme tu aurais le nom des CheckBox qui serait..
Chk(1)
Chk(2)
Chk(3)
etc..
Et qu'à partir de là tu peu tester tout tes checkbox avec 3
lignes
For i = 1 to Unbound(Chk) 'Le dernier checkBox
    If Chk(i).Value = True then
        'tu exécute ce que tu veux comme si c'était le checkBox que tu teste
    End if
Next i


Oublie pas qu'il faut mettre les numéros dans les propriétés Tag des CheckBox, le nom n'a pas d'importance
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
La vrai gène c'est que je traite et des fichiers word et des fichierx excel. Suivant le type de fichier soit je pilote word soit je pilote excel.
il faudrait 2 paragraphes bien distinct qui fait l'un ou l'autre. Puis en fonction de la checkbox coché ( ie en fonction du type de ficher qui lui est attaché) le traitement se fait en paragraphe1 ou 2.
0
Ipalgo Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
Salut Lermitte 222,

Jvoulais te prévenir que je serais un peu moin présent à partir de maintenant étant donn" que j'ai finis mon stage. Je continu le pgm plus pour le désir d'avoir une chose bien terminé que par obligation seulement je serais un peu moin réactif.
Merci bcp pour l'aide que tu m'as donné. Porte toi bien !
0