Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

34 commentaire(s) de bigfish_le vrai sur des sources sur tout CodeS-SourceS

Le : 17/03/2009 11:51:21
Source : DIAPORAMA POWERPOINT DEPUIS EXCEL
Salut,

une petite remarque sur la selection du repertoire qui ne fonctionne pas tres bien et notament sur la selection des repertoires system tel que le repertoire MesImages.

La solution que tu utilises est une mauvaise methode largement rependu sur le web... comme quoi ce n'est pas forcement le meilleur qui ce repend ^^.

Je te propose donc 3 autres methodes dont 2 basées sur le shell.Application tel que ta methode

methode 1 ===========================================================

Function ChoisirDossier()
    Dim objShell, objFolder, chemin As String, SecuriteSlash
                                            
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, "Choisisser un répertoire", &H1&)
    On Error Resume Next
    chemin = objFolder.Items.Item.Path

    SecuriteSlash = InStr(objFolder.Title, ":")

    If SecuriteSlash > 0 Then
        chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""
    End If
    ChoisirDossier = chemin
End Function

methode 2 ===========================================================
(methode qui vient du msdn et que je n'ai jamais vu ailleur)

Function ChoisirDossier() As String
    Dim objShell As Object, objFolder2 As Object
    
    Set objShell = CreateObject("Shell.Application")
    Set objFolder2 = objShell.BrowseForFolder(&H0&, "Choisisser un répertoire", &H1&)
        If (Not objFolder2 Is Nothing) Then
            Dim objFolderItem As Object
            Set objFolderItem = objFolder2.Self
                If (Not objFolderItem Is Nothing) Then
                    ChoisirDossier = objFolderItem.Path
                Else
                    ChoisirDossier = ""
                End If
            Set objFolderItem = Nothing
        Else
            ChoisirDossier = ""
        End If
    Set objFolder2 = Nothing
    Set objShell = Nothing
End Function

methode 3 ===========================================================

Function ChoisirDossier(Optional ByVal LeChemin As String, Optional FolderDialogTitle As String) As String
  If FolderDialogTitle = "" Then FolderDialogTitle = "Select Default files location: "
  With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = FolderDialogTitle
    .InitialFileName = LeChemin
    If .Show = -1 Then
        ChoisirDossier = .InitialFileName
    Else ' bonton Cancel (annulé)
        ChoisirDossier = ""
    End If
  End With
End Function

En ce qui me concerne j'ai une preference pour la methode 3 mais il ne faut pas que cela influence ton choix.

A+ :)


Le : 10/03/2009 18:21:58
Source : SUPPRESSION DES DOUBLONS D'UNE COMBOBOX
Salut,

j'ajouterais que en VBA et en general, les données proviennent d'un tableau. Par exemple avec excel il est courant de faire

Me.MaCombobox.list() = Sheets("feuil1").range("A1:A10").Value

ors si cette plage de cellules contient des doublons et que l'on veut les supprimer il existe d'autre methodes propre a excel. Ces methodes son souvent plus rapide que les methodes par boucle.

en voici une :
la methode suivante suppose que les données sont en colonne et qu'elles sont reperees par une etiquette.

Pour l'exemple je reprends la liste proposé par Renfield. Son etiquette est "Fruit" (de la liste pas de Renfield ;)

Fruit
Banane
BANANE
BANANE
Pomme
Raisin
Poire
Pomme
Fraise
Fraise
Kiwi

Sub ListeSansDoublon(ByRef MaPlage As Range, ByRef MaCombobox As Object)
    If Not MaCombobox Is Nothing And Not MaPlage Is Nothing Then
        If TypeOf MaCombobox Is ComboBox Then
            Application.ScreenUpdating = False
            ' utilisation du filre élaboré des données
            MaPlage.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
            ' le filtre élaboré a besoin d'une colonne de donné avec etiquette
            ' donc pour ne pas mettre cette etiquette dans la liste on ce decale d'une ligne vers le bas
            Set MaPlage = MaPlage.Offset(1, 0).Resize(MaPlage.Rows.Count - 1, 1)
            ' les données en doubles on été cachées par le filtre
            ' il suffit donc de ne recupérer que ce qui est visible
            Set MaPlage = MaPlage.SpecialCells(xlCellTypeVisible)
            ' comme on ne peut pas attribuer les valeurs d'une plage composée de plusieurs area a une combobox
            ' on vas contourner le probleme par un copy paste des valeurs sur une plage temporaire
            MaPlage.Copy
            Range("Z1").PasteSpecial Paste:=xlPasteValues ' ici la plage temporaire est la colonne Z
            MaCombobox.List() = Selection.Value
            ' on desactive le filtre
            ActiveSheet.ShowAllData
            ' on efface la zone temporaire
            Selection.ClearContents
            ' on centre l'affichage sur la plage d'origine
            MaPlage.Cells(1, 1).Activate
            Application.ScreenUpdating = True
        End If
    End If
End Sub

D'autre part un niveau expert pour ça ?!?!... et en plus a l'attention des débutants...


Le : 20/01/2009 15:26:45
Source : GENERATEUR DE DICTIONNAIRES DE CLÉS WPA POUR LIVEBOX
Salut,

Ricco ce n'est pas par ce que tu ne comprend pas une source que tu dois forcement la noter a ton niveau de comprehension.

Voila donc un 10 pour reequilibrer

A+


Le : 05/01/2009 22:28:48
Source : VBA EXCEL FONCTION POUR DÉTERMINER LA DERNIÈRE LIGNE D'UNE COLONNE OU PLUSIEURS
Salut,

tu devrais regarder un peu comment fonctionne ce site car il existe une partie appelé Codyx et qui sert a publier des codes simples qui sont comme tu le dis toi meme souvent utilisés et reutilisés. Honnetement je ne vois pas l'interet de ce code dans les sources.

A+


Le : 15/12/2008 17:57:40
Source : ASTUCES POUR EXCEL.
Re,

j'ai pas été tres complet sur la derniere partie donc je precise un peu:

le fait de rendre invisible excel alors que ton userform est encore a l'ecran interdit l'ouverture d'un autre fichier excel c'est dommage pour l'utilisateur et il risque de ne pas comprendre pourquoi! De plus si il ferme le userform et qu'il ouvre un fichier excel cette fois ci excel va reapparaitre et c'est peut etre toi dans ce cas qui va te retrouver dans une situation non souhaitée. Pour eviter ces 2 cas il existe une solution qui consiste a privatiser la session caché pour obliger excel a créer une autre session si l'utilisateur veut ouvrir un autre fichier par double clic(par exemple):


Sub cacher_Excel()
Application.IgnoreRemoteRequests = True
Application.Visible = False
End Sub
Sub montrer_Excel()
Application.IgnoreRemoteRequests = False
Application.Visible = True
End Sub

ceci dit tu as bien geré le cas de la fermeture de la form en remettant l'option visible de l'application a vrai. Cette precision n'est valable que dans le cas d'une appli qui aurait besoin de continuer a tourner meme apres fermeture de la forme et ce sans qu'elle puisse etre rendu visible par l'ouverture d'un autre fichier excel.

A+


Le : 15/12/2008 17:37:24
Source : ASTUCES POUR EXCEL.
Bonjour,

C'est pas mal, cela a au moins le merite de regrouper plusieurs astuces pas toujours faciles a trouver.

Mais...

je ne suis pas d'accord sur la façon de desactiver les combinaisons de touches Alt+F1, Ctrl+PgUp ou Ctrl+PgDn. Il existe une methode qui simplifie le code et fonctionne avec n'importe quelle combinaison de touches. Ce qui est encore plus etrange c'est que tu as utilisé cette methode dans d'autre cas alors pourquoi pas pour ceux-ci ?

Sub DesactiverCombiTouche()
    Application.OnKey "%{F1}", "MessageDeLimitation"
    Application.OnKey "^{PGUP}", "MessageDeLimitation"
    Application.OnKey "^{PGDN}", "MessageDeLimitation"
End Sub
Sub RetablirCombiTouche()
    Application.OnKey "%{F1}"
    Application.OnKey "^{PGUP}"
    Application.OnKey "^{PGDN}"
End Sub
Sub MessageDeLimitation()
    MsgBox "Vos droits sur ce fichier ne vous permettent pas d'acceder à ces fonctions !", vbExclamation
End Sub

Je ne suis pas non plus d'accord avec la methode qui consiste a virer la croix du userform c'est bien compliqué pour pas grand chose. En effet il existe un evenement sur la form qui permet de detecter l'utilisation de la croix et donc de la desactiver.

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then Cancel = 1
End Sub

Pour plus d'info sur les limitations que l'on peut appliquer a excel tu peux aller jeter un oeil ici :
http://www.vbfrance.com/codes/AMELIORER-SECURITE-ACCES-DONNEES-CODE-FICHIER-EXCEL_48448.aspx

Autre chose: le fait de rendre invisible excel interdit l'ouverture d'un autre fichier excel c'est dommage pour l'utilisateur ! il existe une solution qui consiste a privatiser la session caché pour obliger excel a créer une autre session si l'utilisateur veut ouvrir un autre fichier par double clic(par exemple):

Sub cacher_Excel()
Application.IgnoreRemoteRequests = True
Application.Visible = False
End Sub
Sub montrer_Excel()
Application.IgnoreRemoteRequests = False
Application.Visible = True
End Sub

A+


Le : 30/11/2008 06:17:23
Source : PLANNING POUR AGENT
Salut,

il y a un mot de passe qui protege le code ! C'est pas le meilleur moyen de partager du code.

A+


Le : 18/11/2008 15:22:45
Source : ASTUCE POUR AMELIORER LA SECURITÉ D'ACCÉS AUX DONNÉES ET AU CODE D'UN FICHIER EXCEL
Bonjour,

merci Le pivert pour la note et la remarque sur la MsgBox. Je viens de la supprimer.

A+



Le : 14/11/2008 19:55:47
Source : ASTUCE POUR AMELIORER LA SECURITÉ D'ACCÉS AUX DONNÉES ET AU CODE D'UN FICHIER EXCEL
Bonjour,

il me reste une incertitude sur le nom Français de la barre "Boîte à outils Contrôles".
Si la barre apparait c'est que le nom n'est pas bon donc merci de me le signaler et si possible de me donner le vrai nom ainsi que la version excel d'ou est issu ce nom.

3ddI7IHd


Le : 24/10/2008 17:07:11
Source : BIG BEN DANS UNE FEUILLE DE CALCUL

Apres avoir arrete bigben a l'aide de la macro ArreterBigBen une boite de dialogue dit que l'on doit reouvrir le fichier pour le redemarrer. De mon cote je n'est pas de probleme a le redemarrer avec la macro Auto_Open. ce qui est plus conviviale il me semble.

A+



1 2 3


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.