VBA / Copier valeur cellule et intégration dans un formule

Résolu/Fermé
Tidrah51 - Modifié le 3 déc. 2020 à 10:33
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 3 déc. 2020 à 12:23
Bonjour à vous tous et merci par avance.

Voici le problème que j'ai :

Mon fichier possède 2 onglets : un nommé "Vierge D.F" et l'autre "Gestionnaire Factures".

Sur l'onglet "Vierge D.F" dois récupérer une information texte sous la forme " TS 2020 20 12" en cellule "L5" (cette information est une variable).

Il faut ensuite aller dans l'onglet "Gestionnaire Factures" Aller à la dernière cellule vide d'un tableau (Tableau 3) qui commence en A24 pour écrire cette formule :

='TS 2020 20 12'!B$16

En sachant que la valeur entre ' ' doit être celle récupéré dans l'onglet "Vierge D.F"

Et enfin étirer la formule de la case on l'on vient d'entrer la valeur jusqu'a la colonne I (i).

Voici le code que j'ai pour l'instant :
Sub FREDO()

Range("L5").Select
Selection.Copy
Sheets("Gestionnaire Factures").Select
Cells(Rows.Count, 1).End(xlUp)(2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseApplication.CutCopyMode = False
ActiveCell.FormulaLocal = "='TS 2020 12 0002'!B$16"
Selection.AutoFill Destination:=Range("A27:I27"), Type:=xlFillDefault
Range("A27:I27").Select
End Sub

Mes soucis avec ce code

Ce n'est pas une variable il prend toujours la valeur TS 2020 12 002

Lorsque l'étire la formule ça ne se fais que dans le ligne 27

Merci à vous les pros d'excel et de VBA

Amicalement Pierre
A voir également:

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
3 déc. 2020 à 10:31
Bonjour Tidrah, bonjour le forum,

Peut-être comme ça :
Sub FREDO()
Dim OV As Worksheet 'déclare la variable OV (Onglet Vierge D.F)
Dim GF As Worksheet 'déclare la variable GF (onglet Gestionnaire Factures)
Dim V As String 'déclare la variable V (Variable)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set OV = Worksheets("Vierge D.F") 'définit l'onglet OV
Set GF = Worksheets("Gestionnaire Factures") 'définit l'onglet GF
V = OV.Range("L5").Value 'définit la variable V
Set DEST = GF.Cells(Application.Rows.Count, "A").End(xlUp)(2) 'définit la cellule de destination DEST
DEST.FormulaLocal = "='" & V & "'!B$16" 'applique la formule à DEST
DEST.AutoFill Destination:=GF.Range(GF.Cells(DEST.Row, "A"), GF.Cells(DEST.Rows, I)), Type:=xlFillDefault 'recopie la formule jusqu'à la colonne I
GF.Activate 'active l'onglet GF
DEST.Resize(1, 9).Select 'sélectionne la plage des cellules de DEST
End Sub

0
Tidrah51 Messages postés 1 Date d'inscription mercredi 2 décembre 2020 Statut Membre Dernière intervention 3 décembre 2020
3 déc. 2020 à 10:50
Bonjour !

Merci de ta réponse ! J'ai un message d'erreur ici :

DEST.AutoFill Destination:=GF.Range(GF.Cells(DEST.Row, "A"), GF.Cells(DEST.Rows, I)), Type:=xlFillDefault 'recopie la formule jusqu'à la colonne I 
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160 > Tidrah51 Messages postés 1 Date d'inscription mercredi 2 décembre 2020 Statut Membre Dernière intervention 3 décembre 2020
3 déc. 2020 à 12:23
Re,

Désolé je navet (si, si, dans ce cas on peut...) pas testé et il y avait deux erreurs dans cette ligne :

DEST.AutoFill Destination:=GF.Range(GF.Cells(DEST.Row, "A"), GF.Cells(DEST.Row, "I")), Type:=xlFillDefault 'recopie la formule jusqu'à la colonne I
0