Appliquer une macro à partir d'une cellule

Fermé
Aimyg Messages postés 13 Date d'inscription lundi 17 septembre 2018 Statut Membre Dernière intervention 19 août 2021 - 17 sept. 2018 à 11:32
Aimyg Messages postés 13 Date d'inscription lundi 17 septembre 2018 Statut Membre Dernière intervention 19 août 2021 - 17 sept. 2018 à 15:35
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.
A voir également:

3 réponses

titeufdu89 Messages postés 375 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
17 sept. 2018 à 11:42
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 lundi 17 septembre 2018 Statut Membre Dernière intervention 19 août 2021
17 sept. 2018 à 13:34
Bonjour,

Voici le lien vers mon document.

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

Merci d'avance de votre aide.
0
titeufdu89 Messages postés 375 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
17 sept. 2018 à 15:21
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 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
17 sept. 2018 à 11:56
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 lundi 17 septembre 2018 Statut Membre Dernière intervention 19 août 2021
17 sept. 2018 à 13:32
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 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
17 sept. 2018 à 14:15
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 lundi 17 septembre 2018 Statut Membre Dernière intervention 19 août 2021
17 sept. 2018 à 14:27
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 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
17 sept. 2018 à 15:09
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 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
17 sept. 2018 à 15:10
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 lundi 17 septembre 2018 Statut Membre Dernière intervention 19 août 2021
17 sept. 2018 à 15:35
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