help me !!!

help me !!! - VB/VBA/VBS - Programmation

Marsh Posté le 14-04-2004 à 10:04:02    

salut, :hello:  
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 !!!!!  :)  

Reply

Marsh Posté le 14-04-2004 à 10:04:02   

Reply

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

Reply

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  

Reply

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

Reply

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

Reply

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..

Reply

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

Reply

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 ??

Reply

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

Reply

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 !!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed