Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Insérer une formule en VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Re

Macro a tester
Code:
Sub recopie()
Application.ScreenUpdating = False
derlin = Range("B" & Rows.Count).End(xlUp).Row
ReDim tablo(derlin - 9, 1)
debform = "=SI($E"
finform = "=""X"";"""";""1"")"
a = 9
For n = LBound(tablo, 1) To UBound(tablo, 1)
   tablo(n, 1) = debform & a & finform
   a = a + 1
Next
For n = LBound(tablo, 1) To UBound(tablo, 1)
   Range("I" & n + 9).FormulaLocal = tablo(n, 1)
Next
Application.ScreenUpdating = True
End Sub
 

Hello pierrejean,

J'obtiens ceci ...
 

Pièces jointes

  • 2019-02-17_18-57-07.jpg
    68.3 KB · Affichages: 19
Bonjour sousou, le forum,

Je reviens vers vous car quand j'ai tenté d'incorporer le code dans mon fichier original, j'arrive à un résultat différent ...

En photo, le contenu VBA de mon fichier et le résultat obtenu en activant la macro ... en fait au lieu de commencer l'opération à partir de la cellule I8, le code démarre en I1 pour terminer en I8 ... Aurais-je fait une erreur en recopiant ou??? 🙁
Je précise que je l'ai mis en "module" plutôt que sur la feuille car à l'ouverture du fichier, la feuille "All" n'existe pas. Elle est ajoutée par une macro avant d'utiliser cette macro-ci.
Merci pour vos lumières et bon lundi.
 

Pièces jointes

  • 2019-02-18_05-31-46.jpg
    141.4 KB · Affichages: 17
  • 2019-02-18_05-32-28.jpg
    149.3 KB · Affichages: 19
Dernière édition:
Bonjour à tous,

Laborieux ce fil, pourtant avec les Application.Match (EQUIV) c'est assez simple :
Code:
Sub RemplirColonne()
Dim deb As Range, derlig1 As Long, derlig2 As Long, derlig As Long
With Sheets("All") 'à adapter
    Set deb = .[I8] 'à adapter
    On Error Resume Next
    derlig1 = Application.Match("zzz", .Columns("B"))
    derlig2 = Application.Match(9 ^ 9, .Columns("B"))
    On Error GoTo 0
    derlig = IIf(derlig1 > derlig2, derlig1, derlig2)
    Application.ScreenUpdating = False
    deb.Resize(.Rows.Count - deb.Row + 1).ClearContents 'RAZ
    If derlig >= deb.Row Then
        deb = "=IF(E" & deb.Row & "=""X"","""",1)"
        deb.AutoFill deb.Resize(derlig - deb.Row + 1)
    End If
End With
End Sub
A+
 

Bonsoir job75 et merci pour ton aide 🙂
Et bien sur, résultat au top aussi! 😉😉😉
J'adopte les 2, c'est toujours utile 😀
Excellente soirée à vous toutes et tous et encore merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
252
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…