Excel, boite de dialogue, fichiers&macro [Résolu/Fermé]

Signaler
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017
-
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017
-
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 !

19 réponses

Messages postés
17339
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
6 mai 2021
4 594
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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+
Messages postés
16445
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mai 2021
3 170
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

Merci bcp pour les liens, je travail dessus.
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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.
Messages postés
16445
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mai 2021
3 170
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")
Messages postés
16445
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mai 2021
3 170
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
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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.
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
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)
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

Bonjour à tous,

Est ce qu'il est possible de coller du texte en effaçant celui d'avant ?

Explication :
les signets se se situent comme ceci;

client : (signet1) date : (signet3)

Lorsqu'on colle sur le signet1 il ne faudrait pas que le mot date se déplace vers la droite.
quelqu'un connait la solution ?
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

salut à tous,

voila dans une autre section du forum il y avait la reponse parfaite a ma question mes les liens cijoint ne sont plus valides et j ai du mal a interpreter les explication.
liens : https://forums.commentcamarche.net/forum/affich-16962344-empecher-decalage-champs-de-texte-formulaire

merci à vous
Messages postés
4797
Date d'inscription
dimanche 22 juillet 2007
Statut
Contributeur
Dernière intervention
18 décembre 2018
4 106
Bonjour Ipalgo

En réponse à ton message privé, voici le lien du fichier word que tu as repéré https://www.cjoint.com/?hlv3mBIGqN
Sur ce post, SebWeb posait des champs dans le formulaire en faisant des tabulations sans poser des taquets positionnés à un endroit précis. Comme par défaut, les tabulations sous word sont espacées de 1,5 environ, les zones du formulaire se décalaient quand elles n'avaient pas assez de place.
Il faut donc poser les tabulations dans la règle avec les taquets (ou par le menu tabulation) suffisamment espacés pour absorber la longueur des champs prévus.

Je serais contente si ça répondait à ta demande présente, mais je n'en suis pas si sûre...
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

C'est parfait c'est magnifique ca marche au poil !! :D
Messages postés
4797
Date d'inscription
dimanche 22 juillet 2007
Statut
Contributeur
Dernière intervention
18 décembre 2018
4 106
Super, Contente pour toi :)
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
Re,
Essaye d'envoyer un MP à argixu, voir s'il à encore l'exemple ou qu'il puisse te le réexpliquer.
A+
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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 ?..
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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
Messages postés
16445
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mai 2021
3 170
Bonjour

essaies plutôt
Dim WordApp As object

puisque un peu plus loin tu as

Set WordApp = CreateObject("word.application")


Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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.
Messages postés
16445
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mai 2021
3 170
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
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
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+
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
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)
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
Je me demade bien à quoi sert ce code, tu modifie tes documents Word et ensuite tu les ferme sans sauver ?
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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
Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 607
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
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
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

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
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)
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
question 1 : suffit de mettre un <On Error Resume Next>
Question 2 : pas compris
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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+
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

Juste un petit up pour savoir si ta bien recu le message.
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

Aphone ?
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
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é.
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

Ce que j'ai déjà fait est placé en feuille 2.
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
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.
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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+
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 160
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
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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.
Messages postés
51
Date d'inscription
mercredi 9 juin 2010
Statut
Membre
Dernière intervention
11 février 2017

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 !