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 :

Probleme avec l'heure


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 75
    Par défaut Probleme avec l'heure
    Bonjour a tous , mon petit probleme le voici, dans m'as procedure si il est 10h30 alors la cellule active est en "C" si il est plus de 10h30 alors vas en "P" cela fonctionnais et maintenent plus rien il reste toujour en "C" puis suivant puisque je fais un tab a chaque fois que j'ai ecrit quelque chose .

    est-ce que quelqu'un pourrais me dire se qui manque , merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Sub BECKBLA()
     Dim MyTime
    MyTime = #10:30:00 AM#
        With Worksheets(1).Range("A1:A47")
        Set c = .Find("BECKBLA", LookIn:=xlValues)
        If Not c Is Nothing Then
            Range(c.Address).Select
            Do While ActiveCell.Value <> ""
                If Time <= MyTime Then
                    If Left(ActiveCell.Address, 2) = "$O" Then
                        If ActiveCell.Offset(rowOffset:=1, columnOffset:=-12).Value = "14" Then
                            ActiveCell.Offset(rowOffset:=1, columnOffset:=-12).Activate
                        Else
                            Rows(Right(ActiveCell.Address, 1) + 1 & ":" & Right(ActiveCell.Address, 1) + 1).Select
                            Selection.Insert Shift:=xlDown
                            ActiveCell.Next.Select
                            ActiveCell.Next.Select
                        End If
                    Else
                        ActiveCell.Next.Select
                    End If
                Else
                    If Left(ActiveCell.Address, 2) = "$P" Or Left(ActiveCell.Address, 3) = "$AB" Then
     
                        If ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Value = "1" Or ActiveCell.Offset(rowOffset:=1, columnOffset:=-12).Value >= "26" Then
                            ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
                        Else
                            Rows(Right(ActiveCell.Address, 1) + 1 & ":" & Right(ActiveCell.Address, 1) + 1).Select
                            Selection.Insert Shift:=xlDown
                            ActiveCell.Offset(rowOffset:=0, columnOffset:=14).Activate
                            ActiveCell.Next.Select
                        End If
                    Else
                        ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
                    End If
                End If
     
            Loop
     
        Else
            With Worksheets(1).Range("A1:A47")
                Set c = .Find("", LookIn:=xlValues)
                If Not c Is Nothing Then
                    Range(c.Address).Select
                    ActiveCell.Value = "BECKBLA"
                    ActiveCell.Next.Select
                    If ActiveCell.Offset(rowOffset:=-1, columnOffset:=0).Value = "Prépa" Then
                        ActiveCell.FormulaR1C1 = Range("b2") + 1
                        ActiveCell.Next.Select
                    Else
                        ActiveCell.FormulaR1C1 = ActiveCell.Offset(rowOffset:=-1, columnOffset:=0).Value + 1
                        ActiveCell.Next.Select
                    End If
                End If
            End With
        End If
     
        End With
     
    End Sub

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    et maintenent plus rien il reste toujour en "C"
    je ne vois pas de "C" mais plutot "O". c'est normal ?

    J'ai testé, et cela semble marcher (sans approfondir) mais évidement dans le coin il est 12h30.

    Si tu mets un debug sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Time <= MyTime Then
    qu'as-tu dans Time et MyTime ? (question idiote mais on ne sait jamais).

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,


    Mytime =#10:30:00 AM#

    C'est indiqué.

    Dans Time il ne peut rien affecter, c'est une fonction qui renvoie l'heure système.

    Le problème est peut-être déjà de savoir si dans les Paramètres régionaux
    l'affichage de l'heure est dans le même format que celui choisi pour l'affectation à la variable MyTime

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 75
    Par défaut
    Bonjour a vous 2 et merci pour vos réponce , comme la dis jacques-jean MyTime = 10 H 30 et Timt = l'heure systeme je vient de trouver mon probleme mais si je pouvais le remplacer ce serais bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
    a la place de columnOffset:=1 c'est columnOffset:=15 que je dois mettre donc sa iras jusque le $O je vais tester avec un IF THEN pour voir

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 75
    Par défaut
    Voici ce que j'ai trouver cela fonctionne enfin a suivre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ActiveCell.Offset(rowOffset:=0, columnOffset:=15).Activate
                        Do While ActiveCell.Value <> ""
                            ActiveCell.Next.Select
                        Loop
    Merci pour vos réponce
    juste une autre petite question la macro s'appel "BECKBLA" et ecrit le meme nom grace a un bouton formulaire j'en ai plus de 20 comme sa et achaque fois je dois ecrire ou copier-coller la macro a chaque nouvo client ne pourrais-je pas avois 1 seul macro et a la place du nom mettre une variable comme sa meme avec un combobox il me suffirrais de creer le nom et c'est tous ??

  6. #6
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Citation Envoyé par dreloman Voir le message
    Voici ce que j'ai trouver cela fonctionne enfin a suivre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ActiveCell.Offset(rowOffset:=0, columnOffset:=15).Activate
                        Do While ActiveCell.Value <> ""
                            ActiveCell.Next.Select
                        Loop
    Merci pour vos réponce
    juste une autre petite question la macro s'appel "BECKBLA" et ecrit le meme nom grace a un bouton formulaire j'en ai plus de 20 comme sa et achaque fois je dois ecrire ou copier-coller la macro a chaque nouvo client ne pourrais-je pas avois 1 seul macro et a la place du nom mettre une variable comme sa meme avec un combobox il me suffirrais de creer le nom et c'est tous ??
    Serait-il possible de séparer les phrases ? Histoire de comprendre...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 75
    Par défaut
    Et bien voila la macro que je donne si tu l'essais tu veras qu'el teste si BECKBLA existe , si non elle ecrit , si oui elle vas as la cellule suivante pour moi ecrire un n° de suite , des macro j'en ai + de 20 les meme sauf le nom qui change , donc voici ma question , comment faire pour avoir 1 seul macro avec une variable cette variable remplacerass le nom de la macro et le nom quel dois m'ecrire , voila j'espere me faire omprendre si pas regarder la macro en haut et mettre une variable a la place de BECKBLA

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

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Selon ce que moi j'ai compris, cela devrait ressembler à un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub MaMacro()
    Dim MyTime, Nom
     
    Nom = InputBox("Introduisez le nom à chercher", "Recherche")
    If Nom = False Then Exit Sub
     
    MyTime = #10:30:00 AM#
        With Worksheets(1).Range("A1:A47")
        Set c = .Find(what:=Nom, LookIn:=xlValues)
        If Not c Is Nothing Then
            Range(c.Address).Select
            Do While ActiveCell.Value <> ""
                If Time <= MyTime Then
                '...
                '...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 75
    Par défaut
    Bonjour fring oui mais a la différence que je ne veus pas de input box
    que je te montre .



    Chaque bouton a une macro la meme quand haut il y as que le nom qui change j'aimerais bien a la place d'avoir 20 macro en avoir qu'une mais qui est bonne pour les 20 bouton

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

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    C'est pas un problème,

    Dans la feuille où se trouve le code de tes boutons, tu déclares la variable "Nom" de type "Public" en entête et tu fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Public Nom As String
     
    Private Sub CommandButton1_Click()
    Nom = "BECKBLA"
    MaMacro
    End Sub
     
    Private Sub CommandButton2_Click()
    Nom = "BK-AALT"
    MaMacro
    End Sub
     
    Private Sub CommandButton3_Click()
    Nom = "BK-HEMIKSEM"
    MaMacro
    End Sub
     
    Private Sub CommandButton4_Click()
    Nom = "BK-ZWEVEGEM"
    MaMacro
    End Sub
    Dans ta procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MaMacro()
    Dim MyTime
     
    MyTime = #10:30:00 AM#
        With Worksheets(1).Range("A1:A47")
        Set c = .Find(what:=Nom, LookIn:=xlValues)
        If Not c Is Nothing Then
            Range(c.Address).Select
            Do While ActiveCell.Value <> ""
                If Time <= MyTime Then
                '...
                '...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 75
    Par défaut
    Vraiment impecable frings je te remerci sa vas m'aider énormement dans ma quete au gralll Merci a tous pour ces renseignement et pour le dérangement

    sa fonctionne pas il ne veus pas de what:=Nom une idée ??

    EDIT : dans Nom y a rien quand je fais un debug (F8) je vois que dans what:=Nom ,Nom est vide ??

    C'est impec je viens de trouver comment sa fonctionne lol merci a tous

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

Discussions similaires

  1. Probleme avec le format Heure
    Par dijmo dans le forum SSRS
    Réponses: 0
    Dernier message: 31/03/2009, 15h14
  2. probleme avec le calcul des heures
    Par aibar dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 01h38
  3. Problème avec l'heure système
    Par Oega dans le forum Administration système
    Réponses: 1
    Dernier message: 15/05/2006, 17h03
  4. probleme date et heure avec mysql.
    Par argon dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/07/2005, 23h42
  5. Problem avec insertion de l'heure
    Par moniphal dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 29/04/2005, 12h27

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