[excel]

cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011 - 27 juil. 2007 à 09:47
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 29 juil. 2007 à 12:56
Bonjour,

Dans la cellule suivante je voudrais remplacer F2 par 2 variable contenant un N° de ligne et N° de colonne. Mais je ne connais pas la syntaxe.
Selection.AutoFill Destination:=Range("F2:F13"), Type:=xlFillDefault

Merci pour votre aide
Liro

7 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 juil. 2007 à 09:58
Cells(Ligne, Colonne)
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
27 juil. 2007 à 11:05
Merci Renfiel mais

Selection.AutoFill Destination:=Range(Cells(2, DerColonne), Cells(DerLigne, DerColonne)), Type:=xlFillDefault

me renvoie l'erreur la méthode Autofill de la classe Range à échoué, je suppose donc une erreur d'écriture?
Comment apprendre les bonnes écritures? Car c'est ce qui me pose le plus de problème actuellement.

Liro
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
27 juil. 2007 à 11:28
Si tu écris une formule en F2 et que tu veux la copier avec Autofill jusqu'à la ligne 13, tu peux simplement sélectionner ton Range avant de copier ta formule.

Range(Cells(2, DerColonne), Cells(DerLigne, DerColonne)).Formula = "=MaFormule telle qu'écrite en F2"

pas besoin de Autofill ainsi...

MPi
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
27 juil. 2007 à 15:05
Oula ça se complique alors!

car la formule que je veux tirer avec autofill est la suivante:
"=SUM(A2:" & ActiveCell.Offset(0, -1).Address(False, False, xlA1) & ")"

??

Peut être que c'est mieux de tout ré-expliquer:


J'ai un tableau dont je ne connais pas la taille, je voudrais ajouter une dernière colonne où je fais la somme des colonne A à ...  la dernière que je ne connais pas.


Voici mon code:


Range("A1").Select
    Selection.End(xlToRight).Select
    ActiveCell.Select
    ActiveCell.Offset(0, 1).Select
    ActiveCell.FormulaR1C1 = "Total"
    ActiveCell.Offset(1, 0).Select
ActiveCell.Formula = "=SUM(A2:" & ActiveCell.Offset(0, -1).Address(False, False, xlA1) & ")"

Il ne me manque plus que le code pour tirer la colonne...
Merci pour votre aide.
Liro
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 juil. 2007 à 00:10
Non, ça ne se complique pas...
Quelle est la formule que tu veux inscrire, telle que tu l'écrirais dans la feuille Excel en Z2, disons ?

MPi
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
29 juil. 2007 à 11:14
MPi

Ma formule additionne toutes les valeurs de la ligne de A2 à la dernière colonne que je ne connais car dépend de la taille du tableau.
Voici la formule:

"=SUM(A2:" & ActiveCell.Offset(0, -1).Address(False, False, xlA1) & ")"

Merci
Liro
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 juil. 2007 à 12:56
Essaie ceci
J'ai inscrit 2 méthodes pour comptabiliser le nombre de lignes et de colonnes.
La première méthode utilise une ligne et une colonne spécifiques.
La deuxième méthode utilise toute la feuille pour déterminer la plus grande ligne et la plus grande colonne. Elle cause une erreur, par exemple, s'il n'y a aucune donnée sur la feuille.

    Dim nbLignes As Long, nbColonnes As Integer
   
    'Trouver le nombre de lignes et de colonnes de données inscrites
    nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
    nbColonnes = Cells(1, Columns.Count).End(xlToLeft).Column
   
'    'Autre méthode qui fonctionne bien s'il y a au moins une donnée
'    nbLignes = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
'    nbColonnes = Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column
   
    Range(Cells(2, nbColonnes + 1), Cells(nbLignes, nbColonnes + 1)).Formula = _
        "=SUM(A2:" & Cells(2, nbColonnes).Address(False, False) & ")"

Les 2 False sont là pour éviter d'avoir une adresse absolue (avec $)
De cette façon, la formule s'incrémentera.

MPi
0
Rejoignez-nous