Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2684 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Ma première macro

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ma première macro

n°1739872
Profil sup​primé
Posté le 01-06-2008 à 15:12:08  answer
 

Salut!
J'aurais besoin d'aide pour une macro sous excel. J'ai 750 000 pages de doc mais bon, je pense que le plus rapide pour progresser c'est de répondre à des besoins, ça motive plus  :o  
Seulement je pars de 0. Pour ceux qui ont le temps, ce serait cool de me balancer une esquisse de macro pour le truc de naze que j'essaie de faire.
 
Objectif :
J'ai une colonne de noms, un nom pouvant être présent sur plusieurs lignes.
Dans une autre colonne, j'ai des montants.
Mon but est de changer la "justification" (droite/gauche) des cellules des montants à chaque changement de nom. Ainsi, lorsque je consule mon tableau (énorme) à loupe = 75% , je peux facilement sélectionner avec la cellule les montants correspondants à une personne, la somme s'affichant en pas de la page excel.
 
Le résultat à obtenir :
http://pix.nofrag.com/9/9/e/0548a7545e8b4194a818ac1bce51e.jpg
 
Voilà le genre de boucle à laquelle j'avais "pensé" :
 
C2->justifié à gauche
 
for i=3 to nb_lignes
     if A(i) <> A(i-1)
        then justifC(i) <>justifC(i-1)
        else  justifC(i) =  justifC(i-1)
     endif
endfor
 
Bon, ce langage n'existe pas je sais, c'est juste pour essayer de vous faciliter le boulot. :whistle:  
Merci  :bounce:


Message édité par Profil supprimé le 01-06-2008 à 15:13:29
mood
Publicité
Posté le 01-06-2008 à 15:12:08  profilanswer
 

n°1740055
kiki29
Posté le 02-06-2008 à 09:59:34  profilanswer
 

Salut,à tester,adapter, améliorer


Option Explicit
 
Sub Tst()
Dim LastRow As Long
Dim i As Long
Dim bAlignement As Boolean
Dim sTmp As String
Dim sDep As String
 
    bAlignement = False
    sDep = "xwdseT(èà9-Y(]]ç"
    LastRow = Range("A" & Cells.Rows.Count).End(xlUp).Row
     
    For i = 2 To LastRow
        sTmp = Cells(i, 1)
        If sTmp <> sDep Then
            sDep = sTmp
            bAlignement = Not (bAlignement)
        End If
 
        Select Case bAlignement
            Case True
                Cells(i, 3).HorizontalAlignment = xlLeft
            Case False
                Cells(i, 3).HorizontalAlignment = xlRight
        End Select
    Next i
End Sub

Message cité 1 fois
Message édité par kiki29 le 02-06-2008 à 10:24:53
n°1740083
86vomito33
Posté le 02-06-2008 à 10:36:32  profilanswer
 

salut,
 
n'oublie pas de faire un tri au debut de ta macro ca pourrai eviter des erreurs.
 
nbl = Range("A6555" ).End(xlUp).Row
Range("A1:C" & nbl).Select
Selection.Sort Key1:=Range("A1" ), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal


Message édité par 86vomito33 le 02-06-2008 à 10:39:56
n°1740128
Profil sup​primé
Posté le 02-06-2008 à 11:22:43  answer
 

kiki29 a écrit :

Salut,à tester,adapter, améliorer
...macro qui marche...


 
Salut!
Bon, je comprends la macro, pas de souci, en plus ça a l'air de rouler.
Merci beaucoup pour l'effort!  
 
 
@86vomito33:mon tableau est déjà trié par nom, pas de souci de ce côté-là.
 :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Ma première macro

 

Sujets relatifs
Macro Publisher : Changement policeDéveloppement Macro
Créer une macro sous Microsoft AccessMa fonction doit-elle retourner un pointeur de fichier ou un entier ?
Création d'une macro tri + enregistre selon certains critèresProblème d'affectation de macro à une feuille excel
Ne pas voir l'exécution d'une macro[Résolu][VB-Excel-Macro]Boucle qui ne boucle pas.
Probleme sur une macro excel qui ne copie pas tout 
Plus de sujets relatifs à : Ma première macro


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR