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 :

Création macros pour fichier devis


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
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Par défaut Création macros pour fichier devis
    Bonjour à tous,

    Je suis nouveau sur ce forum, et je suis chargé par ma hiérarchie de concevoir un fichier excel standard pour rédiger des devis.

    Je souhaite utiliser des macros, de manière à pouvoir travailler confortablement, sans avoir d'actions répétitives à effectuer.

    J'ai déjà créer quelques macros "basiques", du genre renommer automatiquement mon onglet, afficher la valeur d'une cellule en pied de page.
    J'ai aussi "piquer" une macro sur internet qui me permet de cocher les onglets que je souhaite imprimer (au lieu de tous les sélectionner manuellement, ce qui peut engendrer des erreurs), de choisir mon imprimante, etc.

    Mes connaissances en VBA étant limitées, je bute sur certains points, à savoir :


    - j'aimerais créer une macro qui puisse masquer automatiquement les lignes vierges (hors sauts de ligne pour "aérer" mon devis).
    Dans l'idée, il me semble qu'il faudrait paramétrer la macro pour qu'elle masque toutes les lignes vierges dans ma colonne B, à partir du moment où elle reconnaît 2 lignes vierges successives, jusqu'à rencontrer la ligne 728 (qui ne sera pas à masquer).
    Cette macro s'appliquerait à une liste d'onglet que j'aimerais pouvoir sélectionner à travers une Box.


    - j'aimerais aussi créer une macro qui me permettrait de sélectionner certains onglets (par l'intermédiaire d'une box), de "figer" les valeurs de la plage de cellule (A1:E728) grâce à un copier/coller valeurs, puis supprimer toutes les données depuis la colonne G (inclue), jusqu'à la colonne.....la plus loin possible .
    Suite à cette action, j'aimerais voir apparaître la boîte de dialogue qui me proposerait "d'enregistrer sous" ce fichier.

    - dernier point : est-il possible de définir automatiquement le nombre de chiffre après la virgule d'une colonne en fonction de la valeur de la cellule de la colonne précédente (exemple : si B1 = m² alors C1 sera du type 1.20, et si B1 = m3 alors C1 sera du type 1.200)

    Merci d'avance pour vos conseils, à bientôt.
    Pupul

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Pour commencer, une piste, regarde le code ci-dessous pour ce qui est du masquage des lignes :
    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
     
    Sub Cacher()
     
        Dim Plage As Range
        Dim Cel As Range
     
        'en feuille "Feuil1" sur colonne B à partir de B2
        With Worksheets("Feuil1")
     
            Set Plage = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp))
     
        End With
     
        'cache toutes les lignes où les cellules sont vides
        Plage.SpecialCells(xlCellTypeBlanks).Rows.Hidden = True
     
        '>>>> avec une boucle qui permet plusieurs tests <<<<
     
        'cache les lignes si la cellule située au dessus est aussi vide
        For Each Cel In Plage
     
            If Cel = "" And Cel.Offset(-1, 0) = "" Then
     
                Cel.Rows.Hidden = True 'ligne de la cellule en cours
                Cel.Offset(-1, 0).Rows.Hidden = True 'ligne de la cellule du dessus
     
            End If
     
        Next Cel
     
    End Sub
    En ce qui concerne la sélection des différentes feuilles, il y a quelques années, j'avais conçu un classeur, je te le poste, fais quelques tests et adapte à tes besoins.

    Hervé.
    Fichiers attachés Fichiers attachés

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Par défaut
    Bonjour,

    Merci pour votre réponse, je suis entrain de travailler sur le masquage des lignes.

    J'ai créé une macro qui me permet de dupliquer un onglet autant de fois que je l'indique dans une boite de dialogue, et de créer en même temps des lignes supplémentaires dans un onglet (ces lignes représentent les nouveaux onglets créés).

    Maintenant je suis bloqué, je n'arrive pas à créer de renvoi de valeur entre certaines cellules du nouvel onglet créer et la ligne créée correspondante.
    Enfin si j'y arrive, mais uniquement au moment de leur création, ce qui n'a pas de sens vu qu'ils sont vierges.

    Comment faire pour créer un lien permanent entre une ligne non créée et un onglet non créé?

    Voici ma macro :

    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
    Sub Lots()
     
    Dim i, z
    z = InputBox("Nombre de lots ", "Copie")
    For i = 1 To z
    
        Sheets(6).Select
        Sheets(6).Copy After:=Sheets(6)
        Range("A5").Select
        
        Sheets(5).Select
        Rows("8:8").Select
        Selection.Copy
        Rows("9:9").Select
        Selection.Insert Shift:=xlDown
        Application.CutCopyMode = False
        
        ActiveSheet.Range("A9") = Sheets(6).Range("A5").Value
        
    
    Next i
    
    End Sub

    Elle crée un nombre d'onglet défini dans une boite de dialogue, ainsi que le nombre de ligne en conséquence.

    Ce que j'aimerais, c'est que la formule en rouge soit activée tout le temps, et pas juste au moment de la création de mes onglet/ligne.
    Est-ce possible.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Bonjour Pupul25

    Je te conseille de te rediriger vers ce fil de discussion :

    http://www.developpez.net/forums/d61...r-formule-vba/

    Qui va t'indiquer comment inscrire des formules dans une cellule via VBA

    Cdt

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Par défaut
    Bonjour,

    Merci pour ton conseil, mais je n'arrive pas à comprendre en quoi il peut m'être utile, tu penses que sa me renverra toujours l'égalité, comme s'il s'agissait d'une formule entrée dans excel de manière conventionnelle?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Exactement, au lieu de copier la valeur de la cellule, tu y écris une formule qui fais référence à la cellule qui t’intéresse.

    En gros tu gardes le lien.

    Cdt

Discussions similaires

  1. [XL-2010] Création macro pour répéter une formule sur plusieurs lignes
    Par JoOz-ZeP43 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/10/2014, 18h06
  2. Réponses: 0
    Dernier message: 19/05/2014, 18h12
  3. [Toutes versions] Création Macro pour supprimer des lignes après tests conditionnels
    Par PeaceMaker dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 14/01/2011, 16h00
  4. [XL-2007] Création d'un fichier d'aide pour une macro complémentaire
    Par amery dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/01/2011, 15h57
  5. création macro pour enregistrer code VBA
    Par Solenne86 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/07/2009, 04h00

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