mettre formule sur la derniere colonne

bigs32

XLDnaute Junior
j'aimerais en VB mettre la formule total sur la dernière colonne non vide de mon fichier excel en exemple
.Dans mon exemple c'est la colonne E qui correspondrait devrait avoir comme formule =C2*D2.
j'ai pas réussi à trouver la solution
je pensais que ca tournerait autour de
Cells(1, 1).Offset(0, ActiveSheet.UsedRange.Columns.Count).End(xlToLeft).Select
et
.FormulaR1C1 = "=RC[-2]*RC[-1]"
si vous avez une piste.
merci d'avance
 

Pièces jointes

  • Classeur2.xls
    16 KB · Affichages: 39
  • Classeur2.xls
    16 KB · Affichages: 42
  • Classeur2.xls
    16 KB · Affichages: 34

Staple1600

XLDnaute Barbatruc
Re : mettre formule sur la derniere colonne

Re


Voici une solution possible


Code:
Sub a()
With ActiveSheet.UsedRange
Cells(2, .Columns.Count + 1).Resize(.Rows.Count - 1).FormulaR1C1 = "=RC[-2]*RC[-1]"
End With
End Sub

PS: j'attends toujours ta réponse dans ton autre fil
 

bigs32

XLDnaute Junior
Re : mettre formule sur la derniere colonne

Re


Voici une solution possible


Code:
Sub a()
With ActiveSheet.UsedRange
Cells(2, .Columns.Count + 1).Resize(.Rows.Count - 1).FormulaR1C1 = "=RC[-2]*RC[-1]"
End With
End Sub

PS: j'attends toujours ta réponse dans ton autre fil
trop top Staple1600.merci ca marche .en plus je comprends ton code .Encore un grand merci Staple1600 t'es trop fort.Je vais essayer de comprendre ton code sur votre post et te répondre .attends.
eh et si je veux la somme de la colonne E sur la derniere ligne de la colonne E.Comme cela j'aurais le total ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : mettre formule sur la derniere colonne

Bonjour


Il suffit d'utiliser la même méthode mais en changeant la formule.

Voici la version modifiée

Code:
Sub a_a()
Dim f1$: f1 = "=RC[-2]*RC[-1]"
With ActiveSheet.UsedRange
    With Cells(2, .Columns.Count + 1).Resize(.Rows.Count - 1)
        .FormulaR1C1 = f1
        .Offset(.Rows.Count).Resize(1).FormulaR1C1 = _
        "=SUM(R[-" & .Rows.Count & "]C:R[-1]C)"
    End With
End With
End Sub
 
Dernière édition:

bigs32

XLDnaute Junior
Re : mettre formule sur la derniere colonne

Bonjour


Il suffit d'utiliser la même méthode mais en changeant la formule.

Voici la version modifiée

Code:
Sub a_a()
Dim f1$: f1 = "=RC[-2]*RC[-1]"
With ActiveSheet.UsedRange
    With Cells(2, .Columns.Count + 1).Resize(.Rows.Count - 1)
        .FormulaR1C1 = f1
        .Offset(.Rows.Count).Resize(1).FormulaR1C1 = _
        "=SUM(R[-" & .Rows.Count & "]C:R[-1]C)"
    End With
End With
End Sub
oh la c'est cool.
par contre j'ai pas compris :
ce genre de déclaration surtout f1$: =>c'est quoi ce $
Offset(.Rows.Count) =>pas compris non plus les points devant rows et count
sinon bien sur ca marche .Si tu peux expliquer ca serait sympa
 

Staple1600

XLDnaute Barbatruc
Re : mettre formule sur la derniere colonne

Re


Je veux bien mais expliquer mais uniquement
quand tu auras été faire un tour dans l'aide de VBA
(ALT+F11 puis F1)

Tout y est déjà.

Si jamais tu ne trouve pas d'explications alors je reviendrai ici te les donner.

(sauf si ...)



PS:
tu devrais savoir que j'adore les endives (ce sont elles qui induisent ces points ;) )

f1 serait un clin d'œil à formule 1 que cela m'étonnerait qu'à moitié tien ;)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : mettre formule sur la derniere colonne

Re

:rolleyes:

Mais non il y a un index, il suffit de rechercher avec le bon mot clé

ou alors de bien fouiller sur le forum.

EDITION voilà ce que tu aurais trouver dans l'aide VBA
et en rouge j'ai mis ce qui te tracasse

String, type de données

Il existe deux types de chaînes : les chaînes de longueur variable et les chaînes de longueur fixe.

  • Les chaînes de longueur variable peuvent contenir environ 2 milliards (2^31) de caractères.
  • Les chaînes de longueur fixe peuvent contenir de 1 à environ 64 Ko (2^16) de caractères. Note Une chaîne de longueur fixe déclarée comme Public ne peut pas être utilisée dans les modules de classe.
Les codes de caractères de type String sont compris entre 0 et 255. Les 128 premiers caractères (0 à 127) du jeu de caractères correspondent aux lettres et symboles d'un clavier américain standard. Ces 128 caractères sont identiques à ceux du jeu de caractères ASCII. Les 128 caractères suivants (128 à 255) représentent des caractères spéciaux, comme les lettres de certains alphabets, les accents, les symboles monétaires et les fractions. Le caractère de déclaration de type String est le signe $.
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
341
Réponses
9
Affichages
486

Statistiques des forums

Discussions
312 582
Messages
2 089 922
Membres
104 307
dernier inscrit
Diet