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 :

date automatique des ouverture d'une feuille [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut date automatique des ouverture d'une feuille
    bonjour,
    j'ai 8 feuilles et j'amerais savoir comment faire pour des que j'ouvre une feuille aléatoire la date s'affiche.dans un module j'ai deja ce code qui fonctionne seulement dans la feuille 1.

    Public derl As Long

    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 auto_open()
    Dim i As Range
     'MODIFIER la ligne suivante le "A" en fonction de la colonne
     'prévu pour contenir la date
     Set i = ThisWorkbook.Sheets("Feuil1").Range("A1")
     If i <> "" Then
        If i.Offset(1, 0) = "" Then
          Set i = i.Offset(1, 0)
        Else
          Set i = i.End(xlDown).Offset(1, 0)
        End If
     End If
     i = Now
     
     End Sub

    de plus j'ai ceci dans thisworkbook et j'aimerais que cela fonctionne dans toutes les feuilles en même temps que les dates.

    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
    Private Sub workbook_beforeclose(cancel As Boolean)
    If Sheets("feuil1").Range("c" & derl).Value = "" Then
    MsgBox "saisie incomplète" & derl
    cancel = True
    Else
     
    Application.DisplayAlerts = True
    End If
    End Sub
     
    Private Sub workbook_open()
    With Sheets("feuil1")
    If .Range("c1") = "" Then
    derl = 1
    Else
    derl = .Range("c" & Rows.Count).End(xlUp)(2).Row
    End If
    End With
    End Sub
    pour résumé les codes que j'ai ci dessus ,j'aimrais que cela fonctionne quelque soit la feuille ouverte

    merci d'avance

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour chuspyto, re le forum,

    si tes codes sont dans un ou des module(s), à mon avis il suffit de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Sheets("Feuil1").Range("A1")
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activesheet.Range("A1")
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("feuil1").Range("c" & derl).Value
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activesheet.Range("c" & derl).Value
    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    j'ai fait les remplacements,mais il ne se passe rien

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Le code fonctionne t'il dans feuil1 ?
    si oui, c'est parce que les autres feuilles n'ont pas les conditions requises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If i <> "" Then
        If i.Offset(1, 0) = "" Then
    à mon avis...
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    en fait l'heure s'affiche dans la 1er feuille quand lee classeur s'ouvre mais ce que je desire c'est qu'elle s'affiche automatiquement quand je change de feuille.
    si non si tu regarde bien le bout de code que tu me demande de rajouter apparait deja dans le mien (d'origine)

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je crois qu'on ne se comprends pas.

    1 - veux-tu voir l'heure dans chaque feuille ?
    2 - le petit bout de code que j'ai mis (qui est le tien), c'est uniquement pour expliquer une raison possible à la défaillance du code
    3- le mieux aurait été d'envoyer un fichier meme raccourci

    Bonne fin de journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    d'après ce que j'ai compris
    dans le code de chaque feuill (si le nombre est fixe, sinon ca sera un peu plus dur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Activate()
    auto_open
    End Sub
    en faisant dans la suboroutine auto_open les modifications de casefayere
    ou plus simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sub auto_open
    dim DerniereLigne  integer
    DerniereLigne = activesheet.Range("A65536").End(xlUp).Row
    cells(DerniereLigne +1,1)=now
    end sub
    (en espérant que tu as un entête de colonne)

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    voila mon code:
    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 auto_open()
    Dim i As Range
     'MODIFIER la ligne suivante le "A" en fonction de la colonne
     'prévu pour contenir la date
     Set i = ThisWorkbook.Sheets("Feuil1").Range("A1")
     If i <> "" Then
        If i.Offset(1, 0) = "" Then
          Set i = i.Offset(1, 0)
        Else
          Set i = i.End(xlDown).Offset(1, 0)
        End If
     End If
     i = Now
     
     End Sub
    il fonctionne sans probleme des que je click sur mon fichier excel,mais le probleme que je rencontre c'est que mon fichier s'ouvre a partir d'une action sur un bouton via access.mon fichier s'ouvre bien,mais je n'ai plus la date et l'heure qui s'affiche.quelqu'un aurrait une solution?

    merci d'avance

  9. #9
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour
    Est ce que la macro se lance au moins? si ce n'est pas le cas il faut que tu regarde l'évènement qui la déclenche.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    oui,quand dans access je click sur mon bouton,j'ai mon fichier excell qui s'ouvre mais le remplissage de la date automatique ne se fait pas.je n'ai aucun message d'erreur.car si je prends mon meme fichier excell et que je double click dessus mon fichier s'ouvre et mon remplissage de la date s'effectue bien.

    je ne vois pas d'ou vient le probleme

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour tous,
    Si j'ai bien compris tu veux actualiser toutes les feuilles du classeur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub auto_open()
    Dim Wkf As Worksheet, Cel  As Range
     'MODIFIER la ligne suivante le "A" en fonction de la colonne
     'prévu pour contenir la date
        For Each Wkf In ThisWorkbook.Sheets
            With Wkf
                If .Range("A1") <> "" Then
                    .Range("A2") = Now
                Else
                    .Range("A" & .Cells(65536, 1).End(xlUp).Row) = Now
                End If
            End With
        Next Wkf
    End Sub
    A adapter aux autre événements.
    A+

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    en fait pour le moment j'aimerai ne m'occuper que d'une seule feuille.mais pour le moment cela ne fonctionne pas quand je click sur un bouton la date ne s'affiche pas dans la cellule quand la feuille s'ouvre
    je ne veux pas ouvrir le fichier par un double click(j'aurrai plusieurs fichier associer a des boutons

  13. #13
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Tu n'as pas répondu a ma question est ce que la macro se lance?
    tu met en première ligne du code
    Si le message s'affiche alors la macro se lance le problème vient de cette macro, sinon c'est que la macro ne s'exécute pas et dans ce cas la le problème vient de l'évènement qui déclenche la macro.

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par chuspyto
    j'ai 8 feuilles et j'amerais savoir comment faire pour des que j'ouvre une feuille aléatoire la date s'affiche
    Ce que j'ai compris c'est que : Chaque fois que tu passe d'une feuille de calculs dans une autre, le jour doit s'afficher.
    Si c'est seulement ça, teste ce code à placer dans Thisworkbook (deux clics sur Thisworkbook dans l'éditeur VBA)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    MsgBox "Il est " & Time & " dans " & Sh.Name
    End Sub
    Bonne soirée

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

Discussions similaires

  1. [XL-2003] Copier automatiquement des valeurs vers une autre feuille
    Par Rabiry dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 24/01/2013, 08h31
  2. Réponses: 2
    Dernier message: 09/12/2009, 17h51
  3. Récupération automatique des données d'une feuille de saisie
    Par vieri dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/01/2009, 17h21
  4. Redimensionnement automatique des composants d'une feuille
    Par Delbeke dans le forum Vos contributions VB6
    Réponses: 3
    Dernier message: 07/06/2007, 14h15
  5. [CR]Importer des données d'une feuille excel
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/12/2004, 22h32

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