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 pour un exercice


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Par défaut VBA pour un exercice
    Bonjour à tous;
    je suis débutant dans excel et je cherche une macro VBA afin de passer de la version 1 à la version 2







    Merci bcp

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Voilà, plus qu'à cliquer sur le bouton
    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
    Sub Disposition()
        Dim DerLig As Long, Lig As Long, Col As Long
     
        Application.ScreenUpdating = False
        Columns("G:Z").Clear
        DerLig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
     
        'Compléter liste des agents
        For i = 3 To DerLig
            If Cells(i, "A") = "" Then Cells(i, "A") = Cells(i - 1, "A")
        Next i
     
        'Liste des agents
        Lig = 2
        For i = 2 To DerLig
            If Cells(i, "A") <> Cells(i - 1, "A") Then
                Cells(Lig, "G") = Cells(i, "A")
                Lig = Lig + 1
            End If
        Next i
     
        'Liste des Pays
        Set D1 = CreateObject("Scripting.Dictionary")
        For Each C In Range("B2:B" & DerLig)
            'If Not D1.exists(C.Text) Then D1(C.Text) = ""
            If C.Text <> "" Then D1(C.Text) = ""
            If Not D1.exists(C.Text) Then D1(C.Text) = ""
        Next C
     
        If D1.Count > 0 Then
            [H1].Resize(1, D1.Count) = Application.Transpose(Application.Transpose(D1.keys))
        End If
     
        'Formules pour marquage
        Range("G1").Value = "            Pays" & Chr(10) & "" & Chr(10) & "Agents"
        DerLig = [G2].End(xlDown).Row
        DerCol = [G1].End(xlToRight).Column
        [H2].FormulaArray = "=IFERROR(IF(MATCH(RC7&"" ""&R1C,C1&"" ""&C2,0)>0,""X"",""""),"""")"
        Range("H2").AutoFill Destination:=Range(Cells(2, "H"), Cells(2, DerCol)), Type:=xlFillDefault
        Range(Cells(2, "H"), Cells(2, DerCol)).AutoFill Destination:=Range(Cells(2, "H"), Cells(DerLig, DerCol)), Type:=xlFillDefault
     
        'Mise en forme
        Range(Cells(1, "G"), Cells(DerLig, DerCol)).Borders().Weight = xlThin
        Range("G1").Borders(xlDiagonalDown).Weight = xlThin
        Range(Cells(1, "H"), Cells(DerLig, DerCol)).HorizontalAlignment = xlCenter
    End Sub

    Avec le fichier
    Pièce jointe 468931

    Cdlt

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour ARTURO83, Dkterreur, la forum
    J'ai tester le code qui fonctionne parfaitement seulement seulement j'ai ajouter : (And Cells(i, "B") <> "") car ton code ajoute deux ligne si la dernière ligne contient un agent et un pays :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Compléter liste des agents
        For i = 3 To DerLig
            If Cells(i, "A") = "" And Cells(i, "B") <> "" Then Cells(i, "A") = Cells(i - 1, "A")
        Next i

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour BENNASR,

    Merci pour la correction

    Cdlt

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

Discussions similaires

  1. [VBA pour Excel] Différence entre activate et select
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/10/2008, 17h20
  2. Réponses: 10
    Dernier message: 10/11/2005, 16h04
  3. Barre de progression VBA pour formulaire Access
    Par beegees dans le forum Access
    Réponses: 1
    Dernier message: 30/10/2005, 12h10
  4. Demande d'aide pour un exercice
    Par IDE dans le forum C
    Réponses: 3
    Dernier message: 29/10/2005, 15h09
  5. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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