XL 2016 Insérer une formule en VBA

luke3300

XLDnaute Impliqué
Bonjour à tous,

Je coince sur un problème d'insertion/de recopie de formule ...:(

J'aimerais insérer via une macro la formule suivante en cellule I8 de mon classeur:

=SI($E8="X","","1")

Et faire étirer ou coller la formule jusqu'à la dernière ligne du classeur contenant des valeurs en colonne B.

Par exemple si la dernière cellule de la colonne B contenant des valeurs est la B46859, j'aimerais que la formule soit copiée de I8 à I46859.

J'ai fais un petit fichier que je joints pour essayer de mieux visualiser le hic.

Très bon dimanche à tous ;)
 

Pièces jointes

  • Test2.xlsm
    1.4 MB · Affichages: 14

luke3300

XLDnaute Impliqué
Re M12,

Est-il possible que cela se lance sans enlever la X de E8?
Quand j'ouvre le fichier et que j'ajoute quelques X dans la colonne E pour tester, ça ne bouge pas quand je clic sur le bouton. Par contre si j'enlève le X de E8 et que je clic, alors oui ça marche mais la formule collée ne tient pas compte des données dans la colonne E alors que s'il y a un X dans une cellule, la cellule correspondante en I ne devrait rien afficher ... regarde ...
 

Pièces jointes

  • 2019-02-17_11-34-42.jpg
    2019-02-17_11-34-42.jpg
    189.1 KB · Affichages: 14

M12

XLDnaute Accro
Re,

Gros malin, Moi, je te fais une macro suivant ce que tu demandes, si tu expliquais plus clairement, cela irais plus vite
Et faire étirer ou coller la formule jusqu'à la dernière ligne du classeur contenant des valeurs en colonne B.

Par exemple si la dernière cellule de la colonne B contenant des valeurs est la B46859, j'aimerais que la formule soit copiée de I8 à I46859.
 

sousou

XLDnaute Barbatruc
bonjour
Tu lances ce code avec un bouton auquel du affecte la macro test, et toutes tes lignes seront affectées
Je n'i pas suivi votre conversation alors regarde si ça te convient


'calcule la dernière ligne de la base
Function dernièrelg(feuille, col)
With Sheets(feuille)
'MsgBox .UsedRange.Rows.Count
Set k = .Cells(.UsedRange.Columns(col).Rows.Count + 1, col).End(xlUp)
If k <> "" Then dernièrelg = k.Row + 1 Else dernièrelg = 1
End With
End Function
Sub test()
With Sheets("all")
drl = dernièrelg(ThisWorkbook.Sheets(1).Name, 2)
Set zone = .Range(.Cells(8, 9), .Cells(drl, 9))
zone.Select
zone.Formula = "=IF(RC5=""X"","""",""1"")"
End With
End Sub
 

luke3300

XLDnaute Impliqué
Re,
Cela ne m'en dis pas plus

EXPLIQUE clairement ce que tu veux
Re M12,

Je suis désolé de ne pas être clair je fais mon possible pour essayer d'expliquer au mieux mais pas toujours facile. J'aimerais simplement que les formules qui se colle en colonne I jusqu'à hauteur de la dernière ligne qui contient une valeur dans la colonne B fonctionne. Tu vois ? Ici en fait tout se colle mais qu'il y ait une donnée ou non en colonne E ça ne change rien. Hors comme la formule le veut, s'il y a un X en colonne E, la cellule correspondante de la colonne I devrait rester vide. Si par contre il n'y a rien, en colonne I ça devrait indiquer 1.
Merci beaucoup.
 

Discussions similaires

Réponses
10
Affichages
185

Statistiques des forums

Discussions
312 027
Messages
2 084 763
Membres
102 657
dernier inscrit
Ferdy