Si Dossier vide alors Checkbox1 = True sinon Checkbox2 = True

perpitou

XLDnaute Occasionnel
Bonjour à tous,
J'ai un dossier ouvrant un userform .
Sur cet userform j'ai plusieurs boutons donnant accès à des ficheirs sur mon ordinateur à savoir le code est:

Code:
'.....................................................
'Command Button : Plans d'Exécution................
Private Sub CommandButtonPlans_Click()
If ThisWorkbook.Path = "" Then
'Si le Dossier chantier  n'est pas enregistré avec l'interface alors:
        MsgBox "Est ce que votre classeur est sauvegardé?"
        Exit Sub
    End If
Dim fichier As String
fichier = ThisWorkbook.Path
'Sinon il ouvre le dossier Correspondant
Shell "C:\WINDOWS\EXPLORER.EXE /n,/e," & fichier & ("\Dossier Travaux\8. Plans d'executions\8.1. Plans d'execution"), vbNormalFocus
End Sub

Donc l'utilisateur range ses plans et manuellement il coche une checkbox. Sauf que j'ai mis 2 checkboxs afin de pouvoir choirsir si c'est archivé ou pas.

Le code actuel est :
Code:
'..................................................................................
'.........................Gestion de l'élément Click sur CheckBox Plans d'Exécution

'Gestion de la checkbox Plans d'Exécution Archivés
Private Sub cbRéaliséPlansExécution_Click()
'Permet de ne pas sélectionner les cases "Archivés" et A "Non Archivés" en même temps.
    If cbRéaliséPlansExécution Then
        If cbNonRéaliséPlansExécution Then
                  cbNonRéaliséPlansExécution = False
        End If
'Si l'utilisateur click sur checkbox Archivé alors le fond devient vert et il y a écrit Archivés.
       cbRéaliséPlansExécution.BackColor = vbGreen
       cbRéaliséPlansExécution.Caption = "Archivéss"
    Else
'Si l'utilisateur ne click pas sur Archivés alors le fond devient blanc et il y a écrit Archivés.
      cbRéaliséPlansExécution.BackColor = vbWhite
      cbRéaliséPlansExécution.Caption = "Réalisés"
    End If
 'le code suivant permet d'enregistrer les changements lorsque l'on click
    If cbRéaliséPlansExécution.Value = True Then
Application.Workbooks("Interface Dossier Chantier.xls").Sheets("Données").Range("A27").Value = 1
Else
Application.Workbooks("Interface Dossier Chantier.xls").Sheets("Données").Range("A27").Value = 0
End If
End Sub

'Gestion de la checkbox Plans Non ARchivés
 Private Sub cbNonRéaliséPlansExécution_Click()
'Permet de ne pas sélectionner les cases Archivés etNon Archivés en même temps.
    If cbNonRéaliséPlansExécution Then
        If cbRéaliséPlansExécution Then
              cbRéaliséPlansExécution = False
        End If
'Si l'utilisateur click sur "Non Archivés" alors le fond devient Rouge et il y a écrit "Non Archivés".
        cbNonRéaliséPlansExécution.BackColor = vbRed
        cbNonRéaliséPlansExécution.Caption = "Non Archivés"
    Else
'Si l'utilisateur ne click pas sur "Non Archivés" alors le fond devient blanc et il y a écrit "Non Réalisés".
        cbNonRéaliséPlansExécution.BackColor = vbWhite
        cbNonRéaliséPlansExécution.Caption = "Non Archivés"
    End If
End Sub

Comment faire pour que mes checkbox changent lorsque un fichier est présent dans le dossier plans exécution?

Merci d'avance
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : changement checkbox lorsque fichier présent dans dossier

re,:)
pourquoi tu prends pas des OptionButtons... qu'un choix possible
autrement superieur a 2 tu peus mettre dans des frames
 

Pièces jointes

  • essai.xls
    35.5 KB · Affichages: 47
  • essai.xls
    35.5 KB · Affichages: 52
  • essai.xls
    35.5 KB · Affichages: 47

perpitou

XLDnaute Occasionnel
Re : changement checkbox lorsque fichier présent dans dossier

Re et encore toi ( merci )
Ben comme tu le sais j'ai fait tout mon fichier avec ds checkboxs et puis c'est pour récupérer des informations et .... Enfin bref j'ai fait ça et c'est compliqué maintenant de revenir en arrière.

Là je pense utiliser:

Code:
Function ExisteFichier(nomfic As String) As Boolean
ExisteFichier = (Dir(nomfic) <> "")
End Function

Mais pour l'appliquer à mes checkboxs pas facile!!

Le problème c'est Nomfic qui doit me repérer la présence d'un fichier quelqonque
 

perpitou

XLDnaute Occasionnel
Re : changement checkbox lorsque fichier présent dans dossier

Code:
Dim oFSO As Scripting.FileSystemObject
Dim oFld As Scripting.Folder
Dim oFl As Scripting.File

'Instanciation du FSO
Set oFSO = New Scripting.FileSystemObject
'Instanciation du dossier
Set oFld = oFSO.GetFolder("D:\blablba")
'Instanciation de l'objet File
Set oFl = oFld.Files("MonFichier.txt") 'Ici je veux un fichier quelquonque

Et que pensez vous de ce code?
 

perpitou

XLDnaute Occasionnel
Re : changement checkbox lorsque fichier présent dans dossier

Bon je continue dans mes recherches et je pense ne pas être loin mais il m'annonce "erreur 74" POURQUOI?

Code:
Dim objFSO, objDossier, objFichier, objResultat
  Dim Repertoire As String
fichier = ThisWorkbook.path
  Repertoire = "C:\WINDOWS\EXPLORER.EXE /n,/e," & fichier & ("\Dossier Travaux\8. Plans d'executions\8.1. Plans d'execution")
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objDossier = objFSO.GetFolder(Repertoire)
 
  If (objDossier.Files.Count > 0) Then
   cbRéaliséPlansExécution.Value = True
     Else
   cbNonRéaliséPlansExécution.Value = True
        End If
   


  Set objResultat = Nothing
  Set objDossier = Nothing
  Set objFSO = Nothing
 

perpitou

XLDnaute Occasionnel
Re : changement checkbox lorsque fichier présent dans dossier

J'ai tenté une autre approche:

Code:
With Application.FileSearch
.NewSearch
.LookIn = "C:\WINDOWS\EXPLORER.EXE /n,/e," & fichier & ("\Dossier Travaux\8. Plans d'executions\8.1. Plans d'execution") 'à déterminer
.Filename = ".*xls"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
If .FoundFiles.Count > 0 Then
cbRéaliséPlansExécution = True
Else
cbNonRéaliséPlansExécution = True
End If
End With

Mais ça donne rien ... Quelqqu'un peut m'aider? SVP
 
G

Guest

Guest
Re : Si Dossier vide alors Checkbox1 = True sinon Checkbox2 = True

Bonsoir,

Comme Laetitia (que je salue:D) je t'avais conseillé les boutons d'options, plus facile à gérer.

Je ne me risquerai pas à reprendre ton code maintenant.
Une piste toutefois, dont nous avions parlé déjà dans un fil précédent.

Si tu modifies la valeur d'un checkBox tu lances son évènement click automatiquement. Peut-être ton problème vient-il de là(évènements en boucle).

Bon courage.

A+
 
G

Guest

Guest
Re : Si Dossier vide alors Checkbox1 = True sinon Checkbox2 = True

Re,

Sans bonjour, cela devient lassant.....

Met un point d'arrêt sur une ligne où tu changes la valeur d'un checkbox puis lorsque le programme s'interrompt à cet endroit, tapes successivenement sur F8 pour voir la suite se dérouler ligne à ligne. Et tu verras ce qui se passe.

A+
 
G

Guest

Guest
Re : Si Dossier vide alors Checkbox1 = True sinon Checkbox2 = True

Re,

C'est pas moi qui peut le savoir, c'est toi qui as écrit ton programme:)

Tu sais avant de faire Essec, il faut passer par la maternelle, puis le primaire, puis le secondaire etc... Si on ne veut pas se faire trop mal:D

En VBA c'est pareil.

A+
 

Staple1600

XLDnaute Barbatruc
Re : Si Dossier vide alors Checkbox1 = True sinon Checkbox2 = True

Bonjour à tous

Re, Sans bonjour, cela devient lassant....

Vous aussi, M'sieur Hasco, vous avez la Cellule lasse, hein ?
Ca vous irrite le poil, cette façon qu'ont les nouveaux membres du forum de toujours se référer à la charte du forum, de nous inonder de ces bonjours inutiles, sans parler de leurs pièces jointes omniprésentes...
C'est vrai que c'est lassant à force , mais mon bon Hasco, faites comme Emile, dites-vous que tout va pour le mieux sur XLD et que nous sommes proches du nirvana.

C'est ce que je me dis tous les jours devant mon écran, après ma piqure de propofol ;) , et pour le coup après je suis tout délassé, presque délavé même.
(RIP Bambi)

Hasco: I have a dream
One day, VBA will be rise up in infant-schools and babies will be macroting à donf on their wPad with Excel 33.

Après ces digressions essentielles retour à la question.

Voila ce que j'en pense

  • VB:
    Dim oFSO ,oFld ,oFl 
    
    'Instanciation du FSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    'Instanciation du dossier
    Set oFld = oFSO.GetFolder("D:\blablba")
    'Instanciation de l'objet File
    Set oFl = oFld.Files("MonFichier.txt") 'Ici je veux un fichier quelconque
    EDITION: je viens de voir que perpitou y a pensé itou à 17h09 après ne pas y a voir pensé à 16h30...
J'ai cru voir une pièce jointe (hommage discret au Grosminet de mon enfance)
Ah non j'ai rêvé.

PS: je ne parle pas de la PJ de leti (que je salue) qui a eu la gentillesse de pijiter alors que le demandeur n'a pas daigné nous concocter un fichier exemple
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Si Dossier vide alors Checkbox1 = True sinon Checkbox2 = True

Re, bonjour aux autres


perpitou:
Pourquoi dénaturer la nature profonde du checkbox ?
Comme tu le vois dans l'aide VBE, un checkbox suppose un gars ou une fille kiklick (le bien nommé utilisateur)

Remarques
Utilisez un contrôle CheckBox pour permettre à l'utilisateur de choisir entre deux valeurs telles que Oui/Non, Vrai/Faux ou Actif/Inactif. Quand l'utilisateur sélectionne un contrôle CheckBox, une marque spéciale (un X, par exemple) s'affiche et sa valeur courante est Oui, Vrai ou Actif ; si l'utilisateur ne sélectionne pas le contrôle CheckBox, celui-ci est vide et sa valeur est Non, Faux ou Inactif. Selon la valeur de la propriété TripleState, un contrôle CheckBox peut aussi avoir une valeur nulle.

Mais encore une fois allume la lumière dans ton fil avec une PJ de ton cru qui illustre ton problème.

PS: PJ sans données confidentielles.
 

perpitou

XLDnaute Occasionnel
Re : Si Dossier vide alors Checkbox1 = True sinon Checkbox2 = True

Bonjour à tous,

Je m'excuse tout d'abord pour mon impolitesse mais ça va changer ;) , puis aussi pour mes mauvais choix.

Je ne pense pas intégrer cette notion de dossier vide ou pas avec mes checkboxs.
Pour 1 simple raison qui est que l'utilisateur va mettre un dossier et les checkbox vont lui indiqué que le documents est archivé alors que si il faut c'est une photo ou autres...

Puis pour un débutant c'est dur d'intégrer cela dans mes codes... Puis je me mords les doigts de ne pas avoir écouter HASCO ou Laetitia pour les optionButton. Merci Staple1600 pour la piqure de rappel des notions de bases.

Par contre une question surement stupide mais bon... Comment peut-on ouvrir un dossier Excel est qu'il apparait au dessus de mon userform en cours d'utilisation?

Est ce une option à cohcer dans excel? Ou je dois intégrer un code VBA qui réduit la fenêtre de mon Userform lorsque je sélectionne un fichier? Que me conseillez vous?

Merci à vous tous. (Pas trop d'ironie STP Staple1600 :eek:)

A+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom