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 :

[VBA-E]insérer un compteur automatique dans une feuille excel ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut [VBA-E]insérer un compteur automatique dans une feuille excel ?
    Salut.

    Je ne suis pas très habile avec visual basic et j'aurrais besoin de votre aide.

    La macro que j'aimerais effectuée devrais être cappable de faire les choses suivantes:
    -générer un numéro unique à mon classeur (dans la cellule nommée numFact) à chaque ouverture de mon modèle excel
    -si le classeur n'a pas été utilisé ou enregisté, annuler la numérotation de celui-ci
    -enregistrer sous le nom d'une cellule "x" le classeur lors de la fermeture
    -réinitialiser la feuille afin de pouvoir y insérer à nouveau des nouvelles données sans avoir à les supprimer manuellement.

    J'ai déja un début de fait mais ça ne fonctionne pas totalement et j'aimerais y apporter des modifications.

    Pouvez-vous m'aider SVP

    Merci d'avance

    Charley

  2. #2
    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
    Bonsoir Charley_250, bienvenue sur le forum,
    Il serait bien que tu nous montres ce que tu as fait, ça nous éviterais d'avoir à écrire une page de code pour nous apercevoir que ce pas ce que tu veux
    Citation Envoyé par Tu
    devrais être cappable de ... générer un numéro unique à mon classeur (dans la cellule nommée numFact) à chaque ouverture de mon modèle excel
    Comment détermines-tu ce N°, comment est-il possible de savoir s'il est unique (unique par rapport à quoi ?)
    puis
    Citation Envoyé par Tu
    -enregistrer sous le nom d'une cellule "x" le classeur lors de la fermeture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Activeworkbook.saveas _
    Filename:= Chemin & WorkSheets("LaFeuille").Cells(NoLigne, NoColonne)
    puis
    Citation Envoyé par Tu
    -réinitialiser la feuille afin de pouvoir y insérer à nouveau des nouvelles données sans avoir à les supprimer manuellement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorkSheets("LaFeuille").Cells.clear
    A+

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut
    Salut ouskel'n'or !

    Vous êtes rapides...

    Bon premièrement,
    Comment détermines-tu ce N°, comment est-il possible de savoir s'il est unique (unique par rapport à quoi ?)
    Je veux que les No se suivent (1,2,3,4...) après chaque enregistrement d'un classeur, qu'il n'y aie pas d'espace entre les No de deux classeurs qui se suivent (1,2,4,5...) et que le même No ne se répète pas (1,2,2,3...). Il doit être unique par rapport à son précedent.

    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
    Sub numérotation()
    Private Sub Workbook_Open()
        If ActiveWorkbook.Path = "" Then
        [numFact] = [numFact] + 1
        ActiveWorkbook.Saved = True
        ActiveWorkbook.SaveCopyAs (Application.TemplatesPath & "factaccopmte.xlt")
        End If
     
        Private Sub Workbook_BeforeClose(Cancel As Boolean)
        chemXlt = Application.TemplatesPath & "factaccompte.xlt"
        If ActiveWorkbook.Path = "" Then
        Set wbk = Workbooks.Open(chemXlt)
        With wbk.ActiveSheet
        .Range("NumFact") = .Range("NumFact") - 1
        End With
        wbk.Close True
        End If
    End Sub


    Merci et à plus tard

    Charley

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut
    qu'est-ce qui cloche dans ces codes... ?

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    j'ai pas bien compris ce que tu faisait avec ses procédures imbriquées..? (on peu pas imbriquer des procédures les unes dans les autres en VB..)

    essai de préciser le but recherché...

    Tu utilise des procédures événementielles..tiens lit ceci histoire de mieux comprendre comment t'en servir :
    Les événements du classeur par Michel Tanguy

    et un petit cours en prime :

    Programmer efficacement avec Excel en VBA (pdf, 46 pages, 711 Ko) par J-M Rabilloud

  6. #6
    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
    En un premier temps je réponds à ça :
    La macro que j'aimerais effectuer devrais être capable de faire les choses suivantes:
    -générer un numéro unique à mon classeur (dans la cellule nommée numFact) à chaque ouverture de mon modèle excel.
    puis, en un second temps à ça :
    -si le classeur n'a pas été utilisé ou enregisté, annuler la numérotation de celui-ci
    Une solution ?
    Deux fichiers : un modèle, à adapter à ta convenance "LeModèle.xlt"
    ....................une macro complémentaire, "EnregistrerFichier.xla"

    Dans le modèle (xlt), une macro lance l'enregistrement en passant en paramètres le chemin et le nom du fichier à enregistrer, sans son numéro, à une macro placée dans le xla.
    La macro placée dans le xla enregistre et ferme le fichier si l'enregistrement est demandé. Le N° de fichier ne sera pas incrémenté si le fichier créé selon le "modèle" n'est pas enregistré.

    J'ai placé un bouton sur feuil1 pour que tu puisses tester l'enregistrement.
    Tu pourras le remplacer par une icône dans une règle perso que tu places dans le modèle (xlt)

    Pour faire l'essai sans toucher aux macros :
    Le xla est à placer dans "C:\Program Files\Microsoft Office\Office10\Macrolib\"
    Le xlt dans "C:\Program Files\Microsoft Office\Modèles"

    Dans leModèle.xlt, il y a donc une macro qui passe le chemin et le nom désiré en paramètre au xla.
    Tu peux déterminer le chemin en fonction de tes propres critères et remplacer le nom en dur qui se trouve dans la macro du modèle par un inputbox par exemple.
    Les fichiers : Pièce jointe 10917
    J'ai voulu te mettre juste le code et te laisser te débrouiller mais comme j'ai testé mon idée, c'était idiot de ne pas te les mettre
    Bien sûr, c'est incomplet par rapport à tes desiderata mais on verra ensuite
    A+

    NB - Je remercie ici dadavyvy pour son aide pour Application.run avec passage de paramètres

    Edit
    Je viens de relire ta question et en ai fait une autre interprétation
    Pour régler ton pb "tel que je viens de le comprendre", il te suffira de modifier la macro complémentaire : Au lieu d'enregistrer le fichier avec le N° incrémenté, tu insères le N° dans ta cellule. Pour le reste, le principe reste le même.

Discussions similaires

  1. insérer un bouton dans une feuille excel lié à une fonction vba
    Par thierry_b dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/06/2009, 12h14
  2. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13
  3. Réponses: 9
    Dernier message: 19/02/2007, 20h33
  4. [VBA-E]trie(suppression de doublons) dans une feuille excel
    Par TANIE dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/08/2006, 13h25
  5. [VBA]Userform mobile dans une feuille excel
    Par fikren dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/10/2005, 15h45

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