étendre une formule

  • Initiateur de la discussion ma
  • Date de début
M

ma

Guest
j'aimerais étendre une formule jusqu'à la fin de ma sélection (je peux avoir entre 1000 lignes à 2500) en vba ? et après je veux effectuer un tri sur cette formule

Comment on fait ça SVP ?
 

2passage

XLDnaute Impliqué
Bonjour,

Essaye range('A1').CurrentRegion.select
activewindow.rangeselection.formula = 'ta formule'

Apreès, si la formule dépend des lignes, il vaut mieux mettre un exemple sinon on va pas s'en sortir.
A+

Edit : Han ! mal lu la question...

Message édité par: 2passage, à: 27/06/2005 14:28
 
M

ma

Guest
j'ai mis un extrait de ce que j'ai fait

[file name=Classeur1_20050627150304.zip size=8560]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20050627150304.zip[/file]
 

Pièces jointes

  • Classeur1_20050627150304.zip
    8.4 KB · Affichages: 41

2passage

XLDnaute Impliqué
Bonjour,

voici un code qui doit faire ce dont tu as besoin : ca pose la formule en colonne B jusqu'à la derniere ligne où la colonne A est remplie (à coller sur un bouton CommandButton1) :

Code:
Private Sub CommandButton1_Click()
Dim ligne
Application.ScreenUpdating False
For Each ligne In Range(Range('B65536').End(xlUp).Offset(1, 0), Range('A65536').End(xlUp).Offset(1, 0)).Rows
    Range('B' & ligne.Row).FormulaR1C1 = '=IF(RC[-1]='''','''',REPLACE(RC[-1],1,1,''T)''))'
Next
Application.ScreenUpdating True
End Sub

enjoy
 
M

ma

Guest
Merci
j'arrive quand je met le bouton dans le classeur 1 mais pas je met dans le classeur 2 pourtant j'ai précisé la feuil

Private Sub CommandButton1_Click()

Dim ligne
Worksheets('Feuil1').Activate
Application.ScreenUpdating = False
For Each ligne In Workbooks('classeur1.xls').Worksheets('feuil1').Range(Range('B65536').End(xlUp).Offset(1, 0), Range('A65536').End(xlUp).Offset(1, 0)).Rows
Range('B' & ligne.Row).FormulaR1C1 = '=IF(RC[-1]='''','''',REPLACE(RC[-1],1,1,''T''))'
Next
Application.ScreenUpdating = True

End Sub

Désolé je suis vraiment pas doué
 

Bebere

XLDnaute Barbatruc
bonjour
j'ai essayé la procédure suivante et c'est ok

Sub Corriger()
Dim Ligne As Long, L As Long

Worksheets('Feuil1').Activate
Application.ScreenUpdating = False
Ligne = Workbooks('classeur1.xls').Worksheets('feuil1').Range('A65536').End(xlUp).Row
Range('B1').Value = 'S'
For L = 2 To Ligne
Range('B' & L).FormulaR1C1 = '=IF(RC[-1]='''','''',REPLACE(RC[-1],1,1,''T)''))'
Next L
Columns(2).AutoFit
Application.ScreenUpdating = True

End Sub


au revoir
 

2passage

XLDnaute Impliqué
Bonjour,

Je pense que tu n'actives pas le bon classeur avant de lancer le reste du code (il y a aussi une feuil1 dans classeur2). Un prochaine fois, essaye de preciser un peu le 'ca marche po' parce que pour le diagnostique, là, c'est un peu boule de cristal, quand même... correction en commentaire ci dessous

Code:
Private Sub CommandButton1_Click()

Dim ligne
Workbooks('classeur1.xls').Activate 'Cette ligne à ajouter
Worksheets('Feuil1').Activate
Application.ScreenUpdating = False
For Each ligne In Workbooks('classeur1.xls').Worksheets('feuil1').Range(Range('B65536').End(xlUp).Offset(1, 0), Range('A65536').End(xlUp).Offset(1, 0)).Rows
    Range('B' & ligne.Row).FormulaR1C1 = '=IF(RC[-1]='''','''',REPLACE(RC[-1],1,1,''T''))'
Next
Application.ScreenUpdating = True

End Sub

A+ :)

Edit : big bazar balise couleur dans balise code :p

Message édité par: 2passage, à: 28/06/2005 14:44
 

Discussions similaires

Statistiques des forums

Discussions
312 232
Messages
2 086 461
Membres
103 220
dernier inscrit
samira2024