Somme d'un nbre évolutif d'elmts &ref à une feuille cree ds la macro

Somme d'un nbre évolutif d'elmts &ref à une feuille cree ds la macro - VB/VBA/VBS - Programmation

Marsh Posté le 16-08-2005 à 15:22:37    

Bonjour,
j'ai 2 problèmes dans le programme suivant :
 
1) Je n'arrive pas à remplir la nouvelle colonne de la page synthese avec les données de la feuille nom_affaire que j'ai crée, il doit y avoir un probleme de reference là (il faut que je rentre une formule car je dois remplir la feuille "nom_affaire" apres la fin de l'execution de la macro, et "nom_affaire" est une donnée rentrée par l'utilisateur dans un userbox, donc je sais pas si c'est possible dans le monde merveilleux de visual basic...)
 
2) Je voudrais mettre une formule de moyenne dans la colonne C (d'où la boucle sur i = l'indice de ligne), mais je m'embrouille dans les " & et tout ça...
 
Sub Creer_nouvelle_affaire()
    Boite_nom_affaire.Show
 
Dim nom_affaire As String
nom_affaire = Boite_nom_affaire.TextBox1.Value
 
Sheets("Synthese" ).Select
Sheets.Add.Name = nom_affaire
 
'...    
 
    ' Remplissage des données dans la feuille de synthèse :
     
    Sheets("Synthese" ).Select
   
    With Sheets("Synthese" )
     .[D:D].Insert Shift:=xlToRight
     .[D3] = nom_affaire
     '.[D4] = [ nom_affaire !M4] ' cette instruction renvoie #VALEUR!
     .[D4].Formula = Sheets(nom_affaire).Range("M4" ) 'celle là renvoie toujours zéro
    End With
'...
       
    'Formule de moyenne :
     
    Dim nbreaffaires As Integer
    nbreaffaires = Sheets.Count - 2
    Dim dernier_ind As Integer
    dernier_ind = Sheets.Count + 1
   
' dans la boucle suivante j'essaie de mettre en C4 la moyenne des cellules remplies sur la ligne 4 (il y a nbreaffaires cases remplies après la case C4)  
   For i = 4 To 31
     Cells(i, 3).Select
     'Cells(i, 3) = "=Sum(   Cells(&i&, 4)  :  Cells(&i&, &dernier_ind& )  ) / " & nbreaffaires & "  "
     Cells(i, 3) = "=sum (Range(ActiveCell(1, 2).adress, ActiveCell(1, 3).Adress))/ " & nbreaffaires & ""
   Next i
         
End Sub
 
 
 
voilà, si vous pouviez me dire ce qui ne marche pas dans cette macro, ça m'aiderai beaucoup!!
 
tootwi

Reply

Marsh Posté le 16-08-2005 à 15:22:37   

Reply

Marsh Posté le 16-08-2005 à 16:37:00    

Salut tootwi
 
pour ton premier problème :


     '.[D4] = [ nom_affaire !M4] ' [#ff3800]cette instruction renvoie #VALEUR![/#ff3800]
     .[D4].Formula = Sheets(nom_affaire).Range("M4" ) [#ff1c00]'celle là renvoie toujours zéro[/#ff1c00]


 
la formule pour ton D4 est plutôt :

Code :
  1. .[D4].Formula= "=" & nom_affaire & "!RC[9]"


pour ton deuxième problème

   
    'Formule de moyenne :
     
    Dim nbreaffaires As Integer
    nbreaffaires = Sheets.Count - 2
    Dim dernier_ind As Integer
    dernier_ind = Sheets.Count + 1
   
' [#00aa55]dans la boucle suivante j'essaie de mettre en C4 la moyenne des cellules remplies sur la ligne 4 (il y a nbreaffaires cases remplies après la case C4[/#00aa55])  
   For i = 4 To 31
     Cells(i, 3).Select
     'Cells(i, 3) = "=Sum(   Cells(&i&, 4)  :  Cells(&i&, &dernier_ind& )  ) / " & nbreaffaires & "  "
     Cells(i, 3) = "=sum (Range(ActiveCell(1, 2).adress, ActiveCell(1, 3).Adress))/ " & nbreaffaires & ""
   Next i

       
regarde si ça marche pas plus simplement :

Code :
  1. Dim nbreaffaires
  2.     nbreaffaires = ActiveWorkbook.Sheets.Count - 2
  3.     Range("C4" ).Select
  4.     ActiveCell.FormulaR1C1 = "=AVERAGE(RC[1]:RC[" & c & "])"


 
Et ce bien ça ?

Reply

Marsh Posté le 16-08-2005 à 16:49:14    

Super merci ça marche!!!

Reply

Marsh Posté le 16-08-2005 à 17:41:07    

Cool !  :bounce:  
 
Marque résolu dans le titre du sujet ça pourra en aider d'autres  
 
 :pt1cable:

Reply

Sujets relatifs:

Leave a Replay

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