Forums XLPages

Tous les messages (papyjac)

Compatibilité MAC de la fonction DIR
#1
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 15-08-2013 11h25

Bonjour

 

J'ai écrit une procédure pour récupérer les noms de fichier contenus dans un dossier

 

Function StockerFichiers(Chemin As String) As Integer

Dim U_Fichier As String ' Résultat de la recherche avec DIR

Dim U_Tableau(1000) As String ' Nom des fichiers

Dim U_nb as integer ' taille du tableau

                        StockerFichiers = 0

                        U_Fichier = Dir(Chemin & "\*")

    Do While U_Fichier <> Empty

                        U_nb = U_nb + 1

                        U_Tableau(U_nb) = U_Fichier

                        U_Fichier = Dir  ' Fichier suivant

    Loop

                        StockerFichiers = U_nb

End Function

 

Je fonctionne correctement sous Windows en version Excel 2007, mais j'ai un problème en version MAC.

J'ai vu dans l'aide Excel qu'il fallait utiliser la fonction MacID

                    Dir(Chemin, MacID("TEXT"))

 

Mais je ne sais pas quelle chaine il faut mettre dans le paramètre de MAcID pour récupérer tous les fichiers et pas seulement ceux d'un certain type

 

En complément, si je devais repérer uniquement les extensions ".eml" de Windows Mail qu'elle valeur devrais-je préciser dans MacID ?

 

Avec les remerciements

 

Papyjac

Hors Ligne
Rapport   Haut 

Re: Affichage d'un userform lors éxécution d'une macro qui dure
#2
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 15-06-2013 08h40

Bonjour aubelix 

 

Je pense que la méthode la plus simple est d'afficher un message dans la barré d'état... elle est faite pour cela. Tu peux y afficher une progression du traitement, par exemple "veuillez patientez... étape N / M"

Pour afficher un message dans la barre d'état

Application.StatusBar = "Veuillez patientez... étape " & N & "/ " & M

 

ensuite il faut définir une fréquence de rafraichissement

Si tu as une boucle générale de traitement par exemple

For N = 1 to M

if mod(N, 10000) = 0 then  Application.StatusBar = "Veuillez patientez... étape " & N & "/ " & M

...

 

next

 

Il faut calibrer le modulo pour que la durée d'attente soit ni trop courte ni trop longue

 

papyjac

Hors Ligne
Rapport   Haut 

Re: Mot de passe sur bouton
#3
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 12-05-2013 08h04

Bonjour Débutant

 

Si je comprends bien, il y a des onglets autorisé et des onglets interdits pour les utilisateurs

La solution la plus simple est de ne mettre que les onglets autorisés dans le classeur que tu donne aux utilisateurs

Toi, tu disposes du classeur complet, et les utilisateurs disposent d'un classeur réduit

Si cela n'est pas possible : tu masques les onglets interdits et tu protèges la structure du classeur avec mot de passe

 

aucun VBA nécessaire

 

papyjac

Hors Ligne
Rapport   Haut 

Re: Problème sur condition
#4
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 12-05-2013 07h57

Bonjour  wilplan

 

J'aurais tendance à déconseillé les userform pour les débutants... mais faut bien commencer un jour

En effet, assez curieusement ton classeur ne contient de userform, mais passons

Je note que tu utilises l'onglet recherche pour effectuer la saisie de ta référence, cela prouve que tu sais te passer de userform, car on pourrait en utiliser un pour cette saisie, mais je ne le conseille pas

Je te propose, pour régler la dynamique de ton classeur d'utiliser un onglet "fiche" vierge si la référence n'existe pas et renseigné si elle existe.

Il est d'ailleurs possible de réaliser cet onglet et son remplissage sans un gramme de VBA, en utilisant des formules simples comme EQUIV, =SI( ; ; )...

Dès lors que la présentation et l'enchainement te plaira, il sera temps de créer des macros VBA, puis le cas échéant un userform

 

 

bon courage

papyjac

Hors Ligne
Rapport   Haut 

Re: Interdire l'option couper/coller avec vba
#5
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 12-05-2013 07h45

Bonjour debutant84

 

Tout est possible, mais tout peut être contourné...

Par expérience, je comprends ton problème, mais ce type d'interdiction va à l'encontre de l'usage d'Excel, et fait perdre beaucoup de temps au développeur et à l'utilisateur : Je te propose de créer un bouton de type "export des données" qui crée un classeur à usage limité, pour des éditions ou calculs complémentaires

 

papyjac

 

 


bidon
Hors Ligne
Rapport   Haut 

Re: Probleme réalisation macro avec enregistreur de macro ...
#6
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 11-02-2013 10h41
Bonjour eric.33
L'enregistreur de macro crée un code VBA, qu'il faut améliorer ensuite. Il n'est pas rare de revoir toutes les instructions en vue d'une meilleure maintenabilité






A la simple lecture de ta formule... "=IF(OR(RC[-3]=""Sans Tva"",RC[-3]=""Tva à 19.6%"",RC[-3]=""Tva à 5.5%"",RC[-3]=""Tva à 7%"",RC[-3]=""Totaux""),""1""&RC[-3],"""")"

... je m'inquiète

De mon point de vue on ne devrait pas trouver ses formules là dans le code VBA, mais tout simplement dans un modèle de classeur.

Pour gérer la complexité d'un classeur, il faut bien distinguer ce qui est du domaine du VB, du domaine des formules, et des données elles-mêmes. Si possible ne pas mélanger les 3.
Si ton problème subsiste tu peux m'envoyer ton classeur

papyjac 

papyjac@laposte.net
Hors Ligne
Rapport   Haut 

Re: Problème formule conditions multiples
#7
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 28-01-2013 10h58
Citation :
sandy84 a écrit : J'ai aussi essayé comme ceci mais ça ne marche pas
=SI($P19();"AU SECOURS";SI($P19<=AUJOURDHUI()+30;"ALERTE";SI($T19=DATE;"TERMINE")))
Merci pour votre aide


Bonjour sandy84
Au delà, de "ça marche" ou "ça ne marche pas"... je déconseille les valeurs "en dur" dans les formules
L'idéal étant de découpler les calculs et les paramètres de ces calculs
Ici dans cette formules on voit des libellés en dur (au secours, alerte, terminé) et une limite en dur (+30)
Dans ton cas les calculs sont doubles : d'une part le statut, et d'autre part l'écart
Les libellés sont stockés dans une liste annexe

Une fois ces éléments calculés, il est plus simple de mettre le libellé
papyjac
Hors Ligne
Rapport   Haut 

Re: Mise en forme conditionnelle "compliquée" excel2010
#8
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 28-01-2013 10h41
Quand je vois le titre je m'inquiète

Perso, je distingue toujours les calculs et la MEFC
Déjà, avec ça, ça devient moins compliqué
Pour les formules, mieux vaut, dans un 1er temps, faire des formules élémentaires (faiblement imbriquées), quitte a faire des calculs intermédiaires
Pour les mises en formes, il faudrait pouvoir se limiter à la couleur de remplissage (éviter le gras, la couleur de police, italique, bordure), car cela doit sauter aux yeux. Ne pas dépasser si possible 5 couleurs
Plus tad tu pourras gérer la complexité
papyjac



Hors Ligne
Rapport   Haut 

Re: formul
#9
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 28-01-2013 10h35
Si j'ai bien compris ta question...

Personnellement j'utilise la formule =NB.SI(plage;critère)
La plage peut être soit un vecteur (en ligne ou colonne) soit un rectangle
Le critère peut être 1, si tu cherches la valeur 1 ; 2 si tu cherches la valeur 2 ; ou bien une condition simple ">0" ; "<30"
On peut aussi créer un critère variable ">" & A1


papyjac
Hors Ligne
Rapport   Haut 

Re: formul
#10
Débutant XLPages

Inscription: 21/01/2013

Messages: 10

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 21-01-2013 09h04
Citation :
mahelnawe a écrit : bonjour le forum,

je voudrai que la valeur contenue en cellule a1 s'ecrive en cellule c1 sans que la cellule  c1 soit oblige de contenir une formul ,et que le contenue de la cellule c1 reste utilisable comme une valeur que j'aurai moi même ecrit  ...un peu d'aide s.v.p  



Bonjour mahelnawe
en cellule C1 Tu écris=A1, et tu mets une couleur, par exemple rose, qui veut dire que tu peux écraser cette cellule manuellement
Mais attention quand on efface la cellule la formule ne revient pas
Si cela te gêne, alors il faut ajouter une colonne D1 de forçage des formules
et mettre en cellule C1=si(estvide(D1);A1;D1)

pour moi toute solution qui évite le VB est préférable, surtout tant que la classeur n'est pas stabilisé.


papyjac




Hors Ligne
Rapport   Haut