VBA : Pbm avec Range

La braise

XLDnaute Occasionnel
Bonsoir à tous,

Je souhaite coller une formule dans un tableau (VLookup) et recopier cette formule sur un nb donnée de colonne.
Ce nb donné de colonne est donnée par une variable 'Mois'.

Après avoir appliqué ma formule dans une première cellule je souhaite la dupliquer sur un nb de colonnes variable : la variable 'mois'.

Voici mon code :

Range("h115").Select
Set Weeklyplage = Range(RC:R[mois]C[26])
ActiveWorkbook.Names.Add Name:="Weeklyplage", RefersTo:=Weeklyplage

ActiveCell.FormulaR1C1 = _
"=VLOOKUP($e115,'[File_Name_AnalyseYtd]RRV'$A$9:$o$34,H$113,0)"
Selection.AutoFill Destination:=Weeklyplage

Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues

je suis bloqué sans explication (texte en rouge) sur le Range de l'opération Set Weekly...
Un pbm de séparateur... :confused:

je ne comprends pas car je défini des range avec RC sur le même modèle, par ex :

ActiveCell.FormulaR1C1 = "=SUM(R[-21]C[6]:R[3]C[15])"

et le séparateur est le même, à savoir les ":" entre les 2 bornes de la plage définies en mode RC.

J'ai pensé également à utiliser le range en mode A9:B36 mais j'arrive à y insérer une variable pour pour la colonne. (j'y arrive pour le n° mais pas pour la colonne....)

D'avance merci pour votre aide toujours aussi efficace...

Bon week end.

:):):)
 

Catrice

XLDnaute Barbatruc
Re : VBA : Pbm avec Range

Bonsoir,

Pas vu de texte en rouge ...
Ci-dessous une interpretation de ce que j'ai compris.
Chez moi ça fonctionne (mais je ne sais pas si ça fait ce que tu veux faire).
Regarde les petits details de syntaxe à corriger et tiens nous au courant.

Sub Test()
mois = 2
With Range("h115")
Set Weeklyplage = .Resize(mois, 26)
ActiveWorkbook.Names.Add Name:="Weeklyplage", RefersTo:=Weeklyplage
.Formula = "=VLOOKUP($e115,[File_Name_AnalyseYtd.xls]Feuil1!A$9:$O$34,H$113,0)"
.AutoFill Destination:=Weeklyplage.Resize(1)
Weeklyplage.Resize(1).AutoFill Destination:=Weeklyplage
End With
Weeklyplage.Copy
Weeklyplage.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
 

La braise

XLDnaute Occasionnel
Re : VBA : Pbm avec Range

Bonsoir Catrice,

Merci beaucoup pour ton message qui m'a permis de résoudre mon problème :)

Pour coller à ce que je souhaite faire,
J'ai modifié la définition de la plage Weeklyplage en Resize(10, Mois) au lieu de l'inverse. Mon explication était un peu confuse aussi ! :D

La formule se colle bien uniquement sur le nombre de colonnes correspondant à la variable, ce qui résout ma problématique.

Voici le code final que j'utilise :

Sub Test()

Dim Mois As Long
Dim Weeklyplage As Range

Mois = 4
MsgBox Mois

With Range("B3")
Set Weeklyplage = .Resize(10, Mois)
ActiveWorkbook.Names.Add Name:="Weeklyplage", RefersTo:=Weeklyplage
.Formula = "=VLOOKUP($A3,BAse!$A$1:$M$11,B$1,0)"
.AutoFill Destination:=Weeklyplage.Resize(1)
Weeklyplage.Resize(1).AutoFill Destination:=Weeklyplage
End With

'Weeklyplage.Copy
'Weeklyplage.PasteSpecial Paste:=xlPasteValues
'Application.CutCopyMode = False

End Sub


Merci pour ton aide... :)
 

Discussions similaires

Réponses
2
Affichages
696
Réponses
1
Affichages
1 K
Réponses
13
Affichages
2 K

Statistiques des forums

Discussions
312 396
Messages
2 088 039
Membres
103 706
dernier inscrit
lolaLb02