help me !!! - VB/VBA/VBS - Programmation
Marsh Posté le 14-04-2004 à 10:14:09
Je voudrais créer une macro me permettant d'aller à la dernière ligne + 1 
d'une colonne X et d'y faire un total ? 
Par exemple, pour mettre la somme des cellules A2:Ax (Ax = dernière 
cellule remplie de la colonne A): 
 
With Range("A2", [A:A].Find("*", [A1], , , , xlPrevious)) 
.Item(.Count + 1).Formula = "=SUM(" & .Address(0, 0) & " )" 
End With 
 
 
source: 
http://dj.joss.free.fr/faq.htm#variableREF 
 
sbedhy
Marsh Posté le 14-04-2004 à 16:04:43
merci ca marche,  
maintenant je rebloque  
parce qu'en fait il ne me le fait que sur ma premiere colonne et je voudrais pouvoir le faire pour chaque de mon tableau  
Marsh Posté le 14-04-2004 à 16:20:57
voila ce que ca donne  
For Each c In Range(Cells(1, 1), Cells(1, 1).End(xlToRight)) 
   
    b = b + 1 
      With Range("A1", [A:A].Find("*", [A1], , , , xlPrevious)) 
.Item(.Count + 1).Formula = "=SUM(" & .Address(0, 0) & " )" 
   End With 
 
Next 
End Sub 
merci d'avance, ca m'aiderais beaucoup a comprendre  
parce que je tourne en rond 
Marsh Posté le 14-04-2004 à 16:52:30
voila j'ai modifier  
 With Range("A1", [A:A].Find("*", [A1], , , , xlPrevious)) 
par 
 With Range(c, [A:A].Find("*", [A1], , , , xlPrevious)) 
ca me donne le resultat  dela premiere colonnes ensuites celle de la premiere plus la deuxiemeet  tjrs ds la premiere colonne 
en fait je voudrais que ca donne le resultat de chaque colonnes a la fin de chaque colonnes! 
  
je commence a un peu mieux a m'ensortir mais c pas encore trop ca donc, voili je dmande  
merci pour vos conseils
Marsh Posté le 14-04-2004 à 17:00:42
il faut que tu trouve un moyen de faire varier les A que tu a dans la formule.. enfin, je pense que ca vient de la.. par contre pas d'idée sur la méthode... dsl..
Marsh Posté le 14-04-2004 à 17:07:53
oui je pense aussi que ca viens de la  
mais bon je vais me creuser un peu le cerveau 
je te remercie beaucoup
Marsh Posté le 14-04-2004 à 18:23:05
bon j'ai trouver un truc pas mal, ca marche pour trois mais si j'avais 2000 colonnes je suis mort!!! lol !!! 
voila a quoi ca ressemble 
Sub TestJuju() 
b = 0 
 
For Each c In Range(Cells(1, 1), Cells(1, 1).En 
d(xlToRight)) 
     
    Dim b1 As Range 
 
   Set b1 = Range("A:A" ) 
    If (b = 0) Then A$ = "A1" 
    If (b = 1) Then A$ = "B1": Set b1 = Range("B:B" ) 
    If (b = 2) Then A$ = "C1": Set b1 = Range("C:C" ) 
    b = b + 1 
   With Range(A$, [b1].Find("*", , , , , xlPrevious)) 
 .Item(.Count + 1).Formula = "=SUM(" & .Address(0, 0) & " )" 
         
       
    End With 
   
Next 
End Sub 
comment en vb faire ça "int i =65+b;char a$=i;a$[1]='1'; ?????" 
et si c'est bon pour celui la il faut mettre l'adresse relative de la range en cours ?? 
Marsh Posté le 14-04-2004 à 21:15:20
personne peu m'aider parce que je boucle vraiment la  
si vous avez une idée  
merci beaucoup
Marsh Posté le 14-04-2004 à 21:53:47
bon ben voila j'ai trouver la solution mon pere ma beaucoup aider 
voila ce que ca donne  
 Sub TestJuju() 
b = 0 
Dim b1 As Range 
For Each c In Range(Cells(1, 1), Cells(1, 1).End(xlToRight)) 
    r2 = Chr$(65 + b) + ":" + Chr$(65 + b) 
    A$ = Chr$(65 + b) + "1" 
    Set b1 = Range(r2) 
    b = b + 1 
    With Range(A$, [b1].Find("*", , , , , xlPrevious)) 
        .Item(.Count + 1).Formula = "=SUM(" & .Address(0, 0) & " )" 
      
    End With 
 
Next 
End Sub 
mais bon sur quelque taleau ca fait un message d'erreur a la fin (derniere colonne) 
mais sinon c bon!!! 
je te remercie "sbedhy", tu m'as beaucoup aidé 
essayer c nikel !!! 
@+ pour de nouvelles aventures !!!!
Marsh Posté le 14-04-2004 à 10:04:02
salut, 
  
 
  
voila je viens de me lancer sur visual basic, mon pere ma demander de faire un ptit programme qui est le suivant
ca va vous parraitre peut etre basic mais bon !!!
j'ai une feuille excel avec plein de chiffres et je dois faire une macro qui me donnerai le resultat de chaque colonne et a la fin, mais il se peut que j'en rajoute apres qui devras s'ajouter au resultat je vous montre ce que j'ai deja taper mais la je bloque....
Sub TestJuju()
b = 0
For Each c In Range(Cells(1, 1), Cells(1, 1).End(xlToRight))
With c
b = b + 1
Cells(11, b) = 0
Select Case .Value
Case "", 0: .EntireColumn.Hidden = True
Case Else: .EntireColumn.Hidden = False
Rem LaSomme = Application.Sum(.EntireColumn)
Rem a=Cells(1,b);
Rem b$ = Cells(1, b).End(xlAtBottom)
Rem Cells(11, b).FormulaR1C1 = "=SUM(Cells(1, b):.End(xltoright))"
Cells(11, b).FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)"
Rem MsgBox LaSomme
Rem Cells(11, b) = LaSomme
End Select
End With
Next
End Sub
je vous remercie d'avance si vous avez des conseilles !!!!!