VBA / Copier valeur cellule et intégration dans un formule [Résolu]

Signaler
-
Messages postés
1411
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
18 décembre 2020
-
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

1 réponse

Messages postés
1411
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
18 décembre 2020
148
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

Messages postés
1
Date d'inscription
mercredi 2 décembre 2020
Statut
Membre
Dernière intervention
3 décembre 2020

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 
Messages postés
1411
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
18 décembre 2020
148 >
Messages postés
1
Date d'inscription
mercredi 2 décembre 2020
Statut
Membre
Dernière intervention
3 décembre 2020

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