XL 2013 [résolu] VBA Etirer formule jusqu'à la dernière ligne

  • Initiateur de la discussion Initiateur de la discussion Tooxy
  • Date de début Date de début

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 !

Tooxy

XLDnaute Nouveau
Bonjour à tous,

Je me permets d'user de vous solliciter pour m'aider à modifier ma macro pour laquelle je souhaite étirer la formule jusqu'à la dernière ligne existante.
Plusieurs sujets évoque les solutions mais hélas à chaque fois, j'obtiens un résultat infructueux

Dans le code ci-après, je cherche la bonne syntaxe pour =Range("H3:H30000") et remplacer le 30000 par la dernière ligne qui serait donc si j'ai bien compris H3: &derlig

Code:
Sub Consolider()
'
' on va consolider les motivations
'

'
    Columns("F:F").Select
    Selection.Replace What:="=""", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="""", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Columns("G:G").Select
    Selection.Replace What:="=""", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="""", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("H3").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],Export_b!C1:C2,2,FALSE)"
    Range("H3").Select
    Selection.AutoFill Destination:=Range("H3:H30000")
    Range("H3:H30000").Select
    Range("I3").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(RC[-3]=RC[-2],"""",VLOOKUP(RC[-2],Export_b!C1:C2,2,FALSE))"
    Range("I3").Select
    Selection.AutoFill Destination:=Range("I3:I30000")
    Range("I3:I30000").Select
End Sub

Merci infiniment de votre aide.
 
Dernière modification par un modérateur:
Re : VBA Etirer formule jusqu'à la dernière ligne

Bonjour Tooxy,

si tu mettait le fichier joint ça serait mieux. Sinon un exemple à adapter à ton cas

EDIT: Bonjour Chris 🙂

Code:
Sub test()
With Feuil1
.Range("f1").FormulaR1C1 = "=VLOOKUP(RC[-2],Export_b!C1:C2,2,FALSE)"
.Range("f1").Copy 'cellule contenant la formule
.Range("h3").PasteSpecial Paste:=xlPasteFormulas
.Range("h3").AutoFill .Range("h3:h30000"), Type:=xlFillDefault

.Range("g1").FormulaR1C1 = "=IF(RC[-3]=RC[-2],"""",VLOOKUP(RC[-2],Export_b!C1:C2,2,FALSE))"
.Range("g1").Copy 'cellule contenant la formule
.Range("i3").PasteSpecial Paste:=xlPasteFormulas
.Range("i3").AutoFill .Range("i3:i30000"), Type:=xlFillDefault
End With
End Sub
 
Dernière édition:
Re : VBA Etirer formule jusqu'à la dernière ligne

Re
Bonjour Lone-wolf

En attendant le fichier, à tester :
Code:
Sub Consolider()
'
' on va consolider les motivations
'
Dim derlg As Integer
derlg = Range("F" & Rows.Count).End(xlUp).Row

    With Range("F2:G" & derlg)
    .Replace What:="=""", Replacement:=""
    .Replace What:="""", Replacement:=""
    End With
    
    Range("H3").FormulaR1C1 = "=VLOOKUP(RC[-2],Export_b!C1:C2,2,FALSE)"
    Range("I3").FormulaR1C1 = _
        "=IF(RC[-3]=RC[-2],"""",VLOOKUP(RC[-2],Export_b!C1:C2,2,FALSE))"
        
    Range("H3:I3").AutoFill Destination:=Range("H3:I" & derlg)
    
    'Pour n'afficher que les valeurs
    Range("H3:I" & derlg) = Range("H3:I" & derlg).Value
    
End Sub
Chris
 
Re : VBA Etirer formule jusqu'à la dernière ligne

Chris401;

Ta solution fonctionne à merveille et la cerise sur le gâteau c'est que la macro s’exécute beaucoup plus rapidement.
Génial, génial !!!

Merci infiniment 🙂
 
- 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
277
Réponses
2
Affichages
461
Réponses
3
Affichages
543
Réponses
12
Affichages
860
Retour