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éer un macro pour faire récapitulatif des titres à 2 nombres d'une liste


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Economiste
    Inscrit en
    Janvier 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Economiste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2013
    Messages : 8
    Par défaut Créer un macro pour faire récapitulatif des titres à 2 nombres d'une liste
    Je recherche une macro qui pourrait faire les actions suivante :

    1. Insérer les lignes 1 à 12 de l’onglet « Modèle » dans mon onglet de travail, et cela en dessous de la ligne que j’aurai sélectionnée au préalable. (généralement se sera la dernière ligne de mon tableau mais pas toujours)

    2. Dans ce « récapitulatif » j’aimerai que l’ensemble des titres à 2 nombre s’insèrent à la suite en colonne A et B, sachant que le nombre de titre est variables.

    Je vous joins un fichier type avec 3 onglets :

    «base » = onglet de travail

    « modèle » = onglet avec les lignes à insérer

    « objectif » = objectif du travail final de la macro


    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Voila le code que je te propose :

    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
    Sub recap()
    Dim test As Range
    Dim save() As String
    Dim last_cell As Range
    Dim off As Integer
     
    With Worksheets("Base")
        Set test = .Range("A1")
        Set last_cell = .Columns(1).Find("*", , , , xlByColumns, xlPrevious)
     
        ActiveCell.Offset(1, 1) = "RECAPITULATION GENERALE"
        ActiveCell.Offset(1, 1).HorizontalAlignment = xlCenter
        ActiveCell.Offset(1, 1).VerticalAlignment = xlCenter
        ActiveCell.Offset(1, 1).Font.Underline = True
        ActiveCell.Offset(1, 1).Font.Bold = True
     
        off = 0
        For i = 0 To last_cell.Row
            If Len(test.Offset(i, 0).Value) = 3 Then
                For j = 0 To 5
                    ActiveCell.Offset(3 + off, j) = test.Offset(i, j)
                Next j
                off = off + 1
            End If
        Next i
     
        Set last_cell = .Columns(1).Find("*", , , , xlByColumns, xlPrevious)
        last_cell.Offset(2, 3) = "Montant Total HT"
        last_cell.Offset(2, 3).Font.Bold = True
        last_cell.Offset(2, 3).HorizontalAlignment = xlCenter
        last_cell.Offset(2, 3).VerticalAlignment = xlCenter
        last_cell.Offset(2, 4) = "="
        last_cell.Offset(2, 4).HorizontalAlignment = xlCenter
        last_cell.Offset(2, 4).VerticalAlignment = xlCenter
     
        last_cell.Offset(3, 3) = "Montant TVA 19,60 %"
        last_cell.Offset(3, 3).Font.Bold = True
        last_cell.Offset(3, 3).HorizontalAlignment = xlCenter
        last_cell.Offset(3, 3).VerticalAlignment = xlCenter
        last_cell.Offset(3, 4) = "="
        last_cell.Offset(3, 4).HorizontalAlignment = xlCenter
        last_cell.Offset(3, 4).VerticalAlignment = xlCenter
     
        last_cell.Offset(4, 3) = "Montant Total TTC"
        last_cell.Offset(4, 3).Font.Bold = True
        last_cell.Offset(4, 3).HorizontalAlignment = xlCenter
        last_cell.Offset(4, 3).VerticalAlignment = xlCenter
        last_cell.Offset(4, 4) = "="
        last_cell.Offset(4, 4).HorizontalAlignment = xlCenter
        last_cell.Offset(4, 4).VerticalAlignment = xlCenter
     
     
    End With
     
    End Sub
    Je pense qu'il y aura des améliorations à apporter puisque tu ne donnes qu'un fichier vide.

    Bref tiens moi au courant !

    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
    61
    62
    63
    64
    65
    66
    Sub recap()
    Dim test As Range
    Dim save() As String
    Dim off As Integer
    Dim act As Range
     
    With Worksheets("Base")
        Set test = .Range("A1")
        Set act = ActiveCell
     
        For i = 1 To 3
            act.EntireRow.Select
            Selection.Insert
        Next i
     
        Set act = ActiveCell.Offset(-2, 0)
     
        act.Offset(1, 1) = "RECAPITULATION GENERALE"
        act.Offset(1, 1).HorizontalAlignment = xlCenter
        act.Offset(1, 1).VerticalAlignment = xlCenter
        act.Offset(1, 1).Font.Underline = True
        act.Offset(1, 1).Font.Bold = True
     
        off = 0
        For i = 0 To .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
            If Len(test.Offset(i, 0).Value) = 3 Then
                For j = 0 To 5
                    act.Offset(3 + off, j).Rows.Insert Shift:=xlDown
                    act.Offset(3 + off, j) = test.Offset(i, j)
                Next j
                off = off + 1
            End If
        Next i
     
        For i = 1 To 5
            act.Offset(4 + off, 3).EntireRow.Select
            Selection.Insert
        Next i
     
        act.Offset(4 + off, 3) = "Montant Total HT"
        act.Offset(4 + off, 3).Font.Bold = True
        act.Offset(4 + off, 3).HorizontalAlignment = xlCenter
        act.Offset(4 + off, 3).VerticalAlignment = xlCenter
        act.Offset(4 + off, 4) = "="
        act.Offset(4 + off, 4).HorizontalAlignment = xlCenter
        act.Offset(4 + off, 4).VerticalAlignment = xlCenter
     
        act.Offset(5 + off, 3) = "Montant TVA 19,60 %"
        act.Offset(5 + off, 3).Font.Bold = True
        act.Offset(5 + off, 3).HorizontalAlignment = xlCenter
        act.Offset(5 + off, 3).VerticalAlignment = xlCenter
        act.Offset(5 + off, 4) = "="
        act.Offset(5 + off, 4).HorizontalAlignment = xlCenter
        act.Offset(5 + off, 4).VerticalAlignment = xlCenter
     
        act.Offset(6 + off, 3) = "Montant Total TTC"
        act.Offset(6 + off, 3).Font.Bold = True
        act.Offset(6 + off, 3).HorizontalAlignment = xlCenter
        act.Offset(6 + off, 3).VerticalAlignment = xlCenter
        act.Offset(6 + off, 4) = "="
        act.Offset(6 + off, 4).HorizontalAlignment = xlCenter
        act.Offset(6 + off, 4).VerticalAlignment = xlCenter
     
    End With
     
    End Sub
    Ceci répondra d'avantage à tes attente en fait ! ^^

  3. #3
    Membre régulier
    Homme Profil pro
    Economiste
    Inscrit en
    Janvier 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Economiste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2013
    Messages : 8
    Par défaut
    Ok merci je teste ça et je te redis.

Discussions similaires

  1. Créer un modèle pour faire des prévisions
    Par matlabation dans le forum R
    Réponses: 1
    Dernier message: 07/12/2016, 17h02
  2. [FASM] Créer une macro pour faire des chaînes explicites
    Par Forthman dans le forum Assembleur
    Réponses: 0
    Dernier message: 30/07/2014, 09h36
  3. [XL-2007] Macro pour Copier coller des colonnes a partir d'une référence sur une ligne
    Par laurasoe dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/07/2014, 11h10
  4. [IP-2010] Créer des "variables" temporaire pour l'affichage des titres
    Par MrMeteo dans le forum InfoPath
    Réponses: 1
    Dernier message: 26/02/2014, 20h56
  5. Réponses: 1
    Dernier message: 13/01/2013, 19h43

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