IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

optimisation/correction de programme


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 34
    Points
    34
    Par défaut optimisation/correction de programme
    Bonjour a tous,
    je suis entrain de finaliser un programme que je realise pour ma compagnie de plannification du personnel. je l'ai structure au moyen de userform ce qui me complique un peu la vie.
    Il n'est pas encore fonctionnel car je n'arrive pas a realiser les choses suivantes:
    - l'utilisateur entre des donnees dans un formulaire de saisie (userform1) et ouvre un autre userform qui realise un calcul avec ces donnees (userform2). Je n'arrive pas a partager mes variables entre les deux userforms.
    - le programme travaille avec plusieurs feuilles de calcul differentes. J'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worsheets("nom').select
    pour indiquer dans quelle feuille je veux que le programme travail et ensuite j'utilise cell(a, b) pour designer mes cibles. Mais cela ne marche pas
    - je finis sur une broutille, comment forcer un format date dans ue combobox, j'ai essaye avec ca mais ca ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_initialize()
    'cbx list
    Cbxprobability.ColumnHeads = True
    Cbxprobability.RowSource = "settings!B2:B6"
    cbxprojectmanager.ColumnHeads = True
    cbxprojectmanager.RowSource = "settings!D2:D8"
    'display today date in the calendar
    Calendar1.Value = Now
    'date format
    Me.cbxtaskstartdate.NumberFormat = "dd/mm/yyyy"
    Me.cbxtaskenddate.NumberFormat = "dd/mm/yyyy"
    End Sub
    Merci, a tout bientot

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 130
    Points : 161
    Points
    161
    Par défaut
    Salut
    déjà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worsheets("nom").select
    serai mieux
    mais je pense que c'est une erreur de frappe

    Sur les dates, un vrai casse tête.
    moi, je repasse part une variable string (date_m)
    puis avec format je Change la date

    Format date américaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_m = Format(Calendar1, "yyyy-MM-dd")
    Puis tu enregistre ta valeur ou tu le souhaite

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    en effet j'ai fait des fautes de frappes dans ma question mais pas dans le programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    worksheets("nom").select
    je vais regarder pour les dates

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 44
    Points : 53
    Points
    53
    Par défaut
    Tu peux, comme dans la plupart des langages de programmation :
    • transmettre des paramètres aux procédures et fonctions
    • déclarer des variables dans les formulaires ou les modules ou déclarer des classes éventuellement, avec les modificateurs de portée Pubic, Private, Friend...
    • enregistrer les données persistentes dans une feuille de calcul ou tout autre moyen de conserver les informations.


    Pour les dates, il me semble que le format par défaut est le format des paramètres linguistiques ; si tu dois remplir une combot avec des dates, tu peux formater les éléments ajoutées avec Format("<expression>", "<format>") (voir l'aide). Enfin pour sélectionner une date facile, il existe le contrôle DateTimePicker qui combine une combobox et un MonthCalendar.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    ok
    merci vos reponses,

    du coup j'ai un autre problem, comment fait on pour selectionner la feuille de calcul sur laquelle l'algorithe travaille, j'ai essaye le code ci-dessous sans succes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim ws as worksheets
    For Each ws In ThisWorkbook.Worksheets
    instruction
    worksheets (ws).cell(1,1).value = 15
    Next ws

  6. #6
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 130
    Points : 161
    Points
    161
    Par défaut
    Si tu ne t'es pas trompée en écrivant ton code

    Cells prend un "s"

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(2).Cells(1, 1).Value = 0


    et dans ton code la déclaration doit être
    sans s cette fois
    finalement tu n'as pas placé le s ou il faut

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    mes doigts sont un peu tout fou sur le clavier aujourd'hui, il va falloir que je les dompte une bonne fois pour toute,
    mais le code VBA etait juste donc le problem ne venait pas de la (dsl pour cette perte de temps).
    j'ai pas bien compris le 2 entre paranthese de ton code

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour tlm,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim ws As Worksheet
     
    For Each ws In ThisWorkbook.Worksheets
        ws.Cells(1, 1).Value = 15
    Next ws
    Concernant le Sheets(2), 2 représente la position de la feuille dans le classeur, 2ème feuille en partant de la gauche

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    ok merci pour tout,
    mon probleme de selection de cellule est resolu.
    Par contre malgre le code fourni dans cette disscussion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_m = Format(Calendar1, "yyyy-MM-dd")
    je n'arrive pas a forcer le format date dans mes combobox.

    merci pour votre aide

  10. #10
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 130
    Points : 161
    Points
    161
    Par défaut
    salut
    ton problème est sur la modification du format sur la donner récupérer du calendar
    ou sur l'insertion de la date dans ton combobox

    cbxtaskstartdate ? c'est ton combobox

    Ou mes tu la date dans ton combobox

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    salut,

    mon problem c'est de forcer un format date du type "dd/mm/yyyy" dans ma combobox "cbxtaskstartdate". J'utilise un calendrier pour inserer la date.

    Ma question porte problème sur la modification du format sur la donner récupérer du calendar.

    merci

  12. #12
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 130
    Points : 161
    Points
    161
    Par défaut
    Si tu enregistre ta valeur dans une cellule Excel et que tu modifie le format
    Cela fonctionne ?

    http://www.ozgrid.com/VBA/excel-calendar-dates.htm

    dans ce lien c'est ce qui ce passe

    âpres tu enregistre ta valeur dans ton combobox
    mais je doute que de changer directement la valeur dans ton combobox soit possible

  13. #13
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour, je viens de regarder ton format date, j'ai, personnellement une procédure où la date passe par une variable et j'obtiens un format français meme si ça parait bizarre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datea = Format(date_augmentation.Text, "mm/dd/yyyy")

  14. #14
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 130
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par casefayere Voir le message
    Bonjour, je viens de regarder ton format date, j'ai, personnellement une procédure où la date passe par une variable et j'obtiens un format français meme si ça parait bizarre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datea = Format(date_augmentation.Text, "mm/dd/yyyy")
    c'est peut être ca !
    il me semble que le format mois doivent être en majuscule
    vu que c'est entre "

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 66
    Points : 77
    Points
    77
    Par défaut
    Tu peux déclarer ta variable de date comme suit cela met la date à ton format par défaut:
    dim datea as Date
    ou
    Public datea as Date
    si tu te sers de cette variable un peu partout.
    Tschuss

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation algorithme de programmation
    Par mp_moreau dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/07/2007, 20h24
  2. Correction de programme en C
    Par vg-matrix dans le forum C
    Réponses: 5
    Dernier message: 06/05/2007, 17h59
  3. Correction de programme
    Par Thesilverking dans le forum Assembleur
    Réponses: 4
    Dernier message: 09/09/2006, 05h07
  4. [Débutant] Optimisation d'un programme
    Par velociraptor5679 dans le forum C++
    Réponses: 20
    Dernier message: 19/06/2006, 22h38
  5. Optimisation d'un programme d'échecs
    Par Erickann dans le forum x86 32-bits / 64-bits
    Réponses: 8
    Dernier message: 23/11/2005, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo