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 :

Mise en forme d'une page en VBA [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 9
    Points
    9
    Par défaut Mise en forme d'une page en VBA
    Bonjour,

    J'ai un petit souci dans une présentation de Excel.

    J'ai besoin de faire un tableau qui récapitule des données mais mon fichier sources n'est pas en forme comme je le souhaite.

    Il faudrait refaire la mise en page du fichier de base et c'est la que je bloque

    Je vous ai mis le fichier en pièce jointe avec une feuille pour le fichier de base et une seconde feuille avec le fichier comme j'aimerai qu'il apparaisse une fois la macro exécuté. Je vous ai mis un petit listing mais j'ai environ 5.000 lignes dans le fichier complet.

    Il doit falloir utiliser des boucles pour chercher le nom du conseiller et voir toute les formations en dessous et le score mais je bloque je suis pas très bon avec les boucles.

    Si vous avez besoin de plus de renseignement n’hésite pas à me le demander.

    Merci d'avance pour votre aide.
    Pièces jointes en attente de validation Pièces jointes en attente de validation

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonsoir
    Et comment différencier entre conseiller et autre?
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Si tu veux dans le fichier j'ai le nom du conseiller qui est toujours Fusionner de A à H

    En dessous j'ai différents nom de formations en A et la note en F
    Mais voila il peut avoir plusieurs formation pour un même conseiller
    et parfois je peux avoir plusieurs fois le même nom de formation en dessous mais juste une fois la note

    La seule chose qui peut aider je pense c'est qu'il y a toujours une ligne vide avant de reprendre un nouveau conseiller

    Avec la pièce jointe c'est plus parlant mais elle est en cours de validation

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Ci joint proposition à adapter au niveau du nom de la feuille de destination (cf. commentaire)
    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
    Sub TEST()
    Dim LastLig As Long, i As Long, j As Long
    Dim Conseil As String
    Dim Sh As Worksheet
     
    Application.ScreenUpdating = False
    Set Sh = Worksheets("Feuil1")                              ' feuille de destination  à adapter
    Sh.Range("A1:C1") = Array("Nom du conseiller", "Nom de la formation", "Score")
    j = 2
    With Worksheets("Fichier de base")
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
        For i = 1 To LastLig
            If .Range("B" & i) Like "Effectuée" Then
                Conseil = .Range("A" & i - 1)
            ElseIf .Range("B" & i) Like "Score" Then
                Sh.Range("A" & j) = Conseil
                Sh.Range("B" & j) = .Range("A" & i - 1)
                Sh.Range("C" & j) = .Range("B" & i + 1)
                j = j + 1
            End If
        Next i
    End With
    Set Sh = Nothing
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    je viens de tester et je n'ai qu'une chose à dire

    MERCI

    Cela fonctionne nickel et en plus c'est super rapide.
    Je viens souvent sur ce forum pour chercher de l'aide dans les différents message posté et la je me suis dis après 3heures de test arrête un peu et demande enfin de l'aide. encore merci

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    En utilisant une variable tableau c'est encore plus rapide
    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
    Sub TEST()
    Dim LastLig As Long, i As Long, j As Long
    Dim Conseil As String
    Dim Sh As Worksheet
    Dim Tb, Res()
     
    Application.ScreenUpdating = False
    Set Sh = Worksheets("Feuil1")                              ' feuille de destination  à adapter
    Sh.UsedRange.Clear
    ReDim Res(1 To 3, 1 To 1)
    Res(1, 1) = "Nom conseiller": Res(2, 1) = "Nom formation": Res(3, 1) = "Score": j = 1
    With Worksheets("Fichier de base")
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
        Tb = .Range("A1:B" & LastLig)
        For i = 1 To LastLig
            If Tb(i, 2) Like "Effectuée" Then
                Conseil = Tb(i - 1, 1)
            ElseIf Tb(i, 2) Like "Score" Then
                j = j + 1
                ReDim Preserve Res(1 To 3, 1 To j)
                Res(1, j) = Conseil
                Res(2, j) = Tb(i - 1, 1)
                Res(3, j) = Tb(i + 1, 2)
            End If
        Next i
    End With
    If j > 1 Then Sh.Range("A1").Resize(j, 3) = Application.Transpose(Res)
    Set Sh = Nothing
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Octobre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Octobre 2011
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    En effet fonctionne également très bien

    encore et toujours merci

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

Discussions similaires

  1. [Débutant] Mise en forme d'une page
    Par Aline S dans le forum Configuration
    Réponses: 2
    Dernier message: 03/07/2015, 03h10
  2. Garder la mise en forme d'une page web à l'impression
    Par 7ider5 dans le forum Débuter
    Réponses: 2
    Dernier message: 21/02/2013, 13h10
  3. [XL-2003] Mise en forme d'une page en VBA
    Par Naru80 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 05/11/2011, 09h31
  4. Comment se passer des <table> pour la mise en forme d'une page
    Par gael dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 12/11/2008, 20h06
  5. Réponses: 5
    Dernier message: 02/01/2007, 15h19

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