comment coder selection autofill avec des i et j Merci !

jf27

XLDnaute Occasionnel
rebjr le forum,

je veux faire l'équivalent
d'un selection autofill mais en indiquant le range par Cells (i,j) et non range
("C5:D15") par exemple

voci le code que j'ai testé mais le range n'est pas reconnu
Code:
Selection.AutoFill Destination:=Range(Cells(k, i), Range(Cells(k, i).End(xlDown))), Type:=xlFillDefault
des idées ?

merci par avance
 

Catrice

XLDnaute Barbatruc
Re : comment coder selection autofill avec des i et j Merci !

Bonjour,

Pas tres clair ...
en effet tu veux parametrer i et k mais le End(xlDown) renvoie un plage variable.
sauf erreur de ma part, AutoFill ne fonctionne en ligne ou en colonne.
Donc il faudra faire un coup k et un coup i ...

Peux tu fournir une petite maquette de ce que tu veux faire dans un fichier ?

NB - La destination de l'AutoFill doit integrer la Selection

Ce code recopie la cellule E4 sur 10 lignes :
Sub test()
i = 4
j = 10
Cells(i, 5).AutoFill Destination:=Cells(i, 5).Resize(j), Type:=xlFillDefault
End Sub

Ce code le fait à partir de la cellule active :
Sub test()
j = 10
Selection.AutoFill Destination:=Selection.Resize(j), Type:=xlFillDefault
End Sub
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : comment coder selection autofill avec des i et j Merci !

Bonjour à tous,

à tester :

Selection.AutoFill Destination:=Range(Cells(k, i), Cells(k, i).End(xlDown)), Type:=xlFillDefault

En fonction de ce que vaut Selection....
 

jf27

XLDnaute Occasionnel
Re : comment coder selection autofill avec des i et j Merci !

Hello tototiti
merci de ta réponse

ta syntaxe est correcte !:D
il me reste maintenant 2 pb:eek:

1/ même soucis de i et j mais cette fois pour générer la formule !
j'ai essayé ca la méthode R1C1 et la méthode i,j mais cela ne fonctionne pas:eek::mad:
Code:
'Comment coder  cellule (i,j)= cellule (i,j-k) en gardant la formule dans la cellule (i,j) et pas uniquement les valeurs)
      
      'ActiveCell.Formula = "= Cells(i - (1 + nbercategories + nbercriteria))"
       'ActiveCell.FormulaR1C1 = "=R4C(i-nbercategories + nbercriteria)"
2/ La forumule est recopier jusqu'à la ligne 65536 ce qui je sais est l'erreur classique
Comment lui dire de recopier jusqu'à la dernière ligne non vide de la colonne A.

Encore merci pour votre aide ;)
@+
jf27
 

tototiti2008

XLDnaute Barbatruc
Re : comment coder selection autofill avec des i et j Merci !

Re,

1/ pas sûr d'avoir compris...

à tester :
cells(i,j).formula = cells(i,j-k).formula

2/ pour recopier une formule jusqu'à la dernière ligne remplie en colonne A

Ligne = range("A65536").end(xlup).row
cells(i,j).autofill Destination:=range(cells(i,j), cells(ligne,j))
 

jf27

XLDnaute Occasionnel
Re : comment coder selection autofill avec des i et j Merci !

encore merci de passer du temps sur mon pb :D
le 2 est OK

pour le 1 je réexplique car ce n'est pas clair !:eek: je mets un fichier joint non codé


j'ai une colonne j où en ligne 2 j'ai le coeff multiplicateur.

je souhaite donc multiplier toutes les lignes de cette colonne par le coeff multiplicateur.
et que cela soit recalculé quand l'utilisateur change le coeff

je n'ai pas trouvé d'autre moyen de créer un 2ème colonne= colonne J * coeff.

J'arrive à coder la création de la 2ème colonne et la multiplication, mais dans le résultat je perds la formule
Code:
Range("A2").Select
    ActiveCell.FormulaR1C1 = "Scale Factor"
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "Max value"
    
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "1"
    Selection.AutoFill Destination:=Range("B2", Range("B2").End(xlToRight)), Type:=xlFillDefault
    
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "=MAX(C)"
    Selection.AutoFill Destination:=Range("B3", Range("B3").End(xlToRight)), Type:=xlFillDefault
    
    
 For i = (1 + (1 + nbercategories + nbercriteria)) To (1 + nbercategories + nbercriteria + 1 + nbercategories + nbercriteria)
    Cells(4, i).Select
      If IsNumeric(Cells(4, i - nbercategories + nbercriteria)) Then
      ActiveCell.Formula = Cells(4, (i - (1 + nbercategories + nbercriteria)))
      'ActiveCell.FormulaR1C1 = "=R4C(i-nbercategories + nbercriteria)"
      
      ligne = Range("A65536").End(xlUp).Row
      Cells(4, i).AutoFill Destination:=Range(Cells(4, i), Cells(ligne, i))
        
      End If
     Cells.Select
     Calculate
 

Fichiers joints

jf27

XLDnaute Occasionnel
Re : comment coder selection autofill avec des i et j Merci !

A y est !

A force de persévérance et avec quelques cheveux en moins, c bon j'ai trouvé.

Je ne sais pas si c super propre comme code (en fait si je sais que c pas propre) mais faute de mieux cela marche

Merci à tous:D:eek::D

Code:
or i = ((1 + nbercategories + nbercriteria)) To (1 + nbercategories + nbercriteria + nbercategories + nbercriteria)
    Cells(4, i).Select
      If IsNumeric(Cells(3, i - (nbercategories + nbercriteria))) Then
      Cells(1, i) = Cells(1, (i - (nbercategories + nbercriteria)))
      Cells(4, i).Select
     ActiveCell.FormulaR1C1 = "=R[0]C[-" & (nbercategories + nbercriteria) & "]*R2C" & (nbercategories + nbercriteria)
        
      ligne = Range("A65536").End(xlUp).Row
      Cells(4, i).AutoFill Destination:=Range(Cells(4, i), Cells(ligne, i))
      End If
Next i
 

Catrice

XLDnaute Barbatruc
Re : comment coder selection autofill avec des i et j Merci !

Re,

Sans trop comprendre ce que ça fait, tu dois pouvoir simplifier comme ça :

Sub test()
For i = (1 + nbercategories + nbercriteria) To 1 + (2 * nbercategories) + (2 * nbercriteria)
If IsNumeric(Cells(3, i - (nbercategories + nbercriteria))) Then
Cells(1, i) = Cells(1, (i - (nbercategories + nbercriteria)))
Cells(4, i).FormulaR1C1 = "=RC[-" & (nbercategories + nbercriteria) & "]*R2C" & (nbercategories + nbercriteria)
Cells(4, i).AutoFill Destination:=Range(Cells(4, i), Cells(Range("A65536").End(xlUp).Row, i))
End If
Next i
End Sub

Les Select sont normalement inutiles
 

Discussions similaires


Haut Bas