Appliquer une macro à partir d'une cellule

Aimyg Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
Aimyg Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai besoin de votre aide pour optimiser un fichier de travail mais je suis débutante et ne parvient pas au résultat que je souhaite.

Je cherche à faire une macro pour créer une recherche V qui s'applique à différente colonne.

Je fais ma recherche V en cellule H2 puis l'applique à toute la colonne H et effectue une autre recherche V en cellule U2 et l'applique à toute la colonne U. Jusqu'ici je m'en suis sortie avec l'enregistreur.


ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-7],MOIS,4,0)"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H606")
Range("H2:H606").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("U2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-20],MOIS,5,0)"
Range("U2").Select
Selection.AutoFill Destination:=Range("U2:U606")
Range("U2:U606").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End Sub

La ou cela ne fonctionne pas c'est que en me positionnant en cellule I2 je souhaiterais que ces mêmes recherche V s'applique aux colonnes I et V et ainsi de suite si je me positionne en J2 que les formules s'applique aux colonnes J et W.

J'espère que mes explications sont claires, merci par avance de votre aide.

3 réponses

titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
Bonjour,

Pourrais-tu joindre un exemple de ton fichier afin que l'on puisse mieux comprendre ta demande car là c'est un peu abstrait. Tu peux utiliser le site gratuit suivant pour poster ton fichier : https://www.cjoint.com/

A bientôt

Jc
0
Aimyg Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Voici le lien vers mon document.

https://www.cjoint.com/c/HIrlH0cqxTk

Merci d'avance de votre aide.
0
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
Je dois être un peu limité mais même avec le fichier je ne parviens pas a comprendre ce que tu cherches à faire au juste... :-s
0
danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
Bonjour,

Remplace les trois premières lignes par :

  ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-7],MOIS,4,0)"
  ActiveCell.AutoFill Destination:=ActiveCell.Resize(605)


Fais pareil pour la seconde formule.

Cordialement.

Daniel
0
Aimyg Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Merci pour votre aide mais mon problème n'est pas solutionné. J'ai peut être pas modifié les informations correctement.

le code donne ça :
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-7],MOIS,4,0)"
ActiveCell.AutoFill Destination:=ActiveCell.Resize(605)
Range("H2:H606").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("U2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-20],MOIS,5,0)"
ActiveCell.AutoFill Destination:=ActiveCell.Resize(605)
Range("U2:U606").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False

Ma recherche V fonctionne très bien en colonne H et U, mais quand je me positionne en colonne I, elle ne fonctionne pas alors que je voudrais qu'elle se reproduise en colonne I et V.

Cordialement
0
danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
Peut-être :

Sub Macro2()
'
' Macro2 Macro
'
 ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-7],MOIS,4,0)"
 ActiveCell.AutoFill Destination:=ActiveCell.Resize(605)
 ActiveCell.Resize(605).Copy
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 ActiveCell.Offset(, 13).Select
 Application.CutCopyMode = False
 ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-20],MOIS,5,0)"
 ActiveCell.AutoFill Destination:=ActiveCell.Resize(605)
 ActiveCell.Resize(605).Copy
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Range("A1").Select
 Application.CutCopyMode = False
End Sub


Daniel
0
Aimyg Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci du temps passé.

Les formules se reporte bien dans les colonnes I et V mais par contre la formule n'évolue pas RC[-7] doit devenir RC[-8] et RC[-20] doit devenir RC[-21] mais je ne sais pas comment faire.

Aimy
0
danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,MOIS,4,0)"
 ActiveCell.AutoFill Destination:=ActiveCell.Resize(605)
 ActiveCell.Resize(605).Copy
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 ActiveCell.Offset(, 13).Select
 Application.CutCopyMode = False
 ActiveCell.FormulaR1C1 = "=VLOOKUP(RC1,MOIS,5,0)"
 ActiveCell.AutoFill Destination:=ActiveCell.Resize(605)
 ActiveCell.Resize(605).Copy
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False
 Range("A1").Select
 Application.CutCopyMode = False


Daniel
0
danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
Et pour simplifier :

Sub Macro3()
ActiveCell.Resize(605).FormulaR1C1 = "=VLOOKUP(RC1,MOIS,4,0)"
ActiveCell.Resize(605).Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveCell.Offset(, 13).Resize(605).FormulaR1C1 = "=VLOOKUP(RC1,MOIS,5,0)"
ActiveCell.Resize(605).Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End Sub
0
Aimyg Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai trouvé la solution grâce à de l'aide sur un autre forum.

Je partage si cela peut en aider d'autres.

Option Explicit 'oblige à déclarer les variables

Sub essai()
Dim décal%, mois%, f As Worksheet, taille&, i%
décal = 2
mois = Month(Range("zone").Item(1, 3))
Set f = Sheets(1)
taille = f.[A65000].End(xlUp).Row - 1
For i = 0 To 5
With f.Cells(2, mois + décal).Resize(taille).Offset(, 13 * i)
.Formula = "=vlookup(A2,zone," & 4 + i & ",false)"
.Value = .Value
End With
Next
End Sub

Merci encore
0