RechercheV
Bonjour,
Je souhaiterai intégrer à mon code une rechercheV qui me permettrait de renseigner ma colonne volume.
Je sais faire des recherches classiques mais pas avec mon code.
' Renseigner la colonne Volume
--> C'est ici que je voudrai faire ma rechercheV
Je detaille les arguments de la fonction :
La valeur cherché : fichier macro, feuille2, de C6 jusqu'à la fin de mes lignes. La colonne C correspond à ma ColDep = colonne de départ.
Matrice : classeur volume, feuille1, colonne A,B,C de la ligne 2 jusqu'à la fin de mes lignes.
Colonne : Si classeur macro, feuille 1 B2=HM alors on prend dans classeur volume, feuille1, la colonne avec la valeur "2" à la ligne 1
B2=SM alors on prend dans classeur volume, feuille1, la colonne avec la valeur "1" à la ligne 1
On prend donc soit la colonne B, soit la colonneC
Je vous remercie d'avance pour votre aide.
Voici mon code et veuillez trouver ci-joint les fichiers :
Sub Bouton1_Cliquer()
Dim K As Long
Dim NbCol As Integer, ColDep As Integer
'------------------------------------------------------------------------------------
' Copier coller transposé et création des colonnes pour les variables
Application.ScreenUpdating = False
'Colonne de depart
ColDep = 3
'Nombre de colonne
NbCol = Cells(5, Columns.Count).End(xlToLeft).Column
With Sheets("Feuil2")
.Cells.Clear
For K = 7 To Range("A" & Rows.Count).End(xlUp).Row
Range(Range("A5"), Cells(6, NbCol)).Copy
.Columns(ColDep).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
Range(Range("A" & K), Cells(K, NbCol)).Copy
.Columns(ColDep + 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
.Cells(5, ColDep + 3).Resize(1, 9) = Array("Select for gap", "Volume", "PDM", "Usage", "Format", "Priorité", "Commentaire", "", "")
'En gris une colonne de séparation
.Columns(ColDep + 11).Interior.Color = RGB(174, 240, 194)
'En couleur le produit de reference
.Cells(1, ColDep + 2).Interior.Color = RGB(50, 200, 100)
' Format des colonnes
.Columns(ColDep + 2).NumberFormat = "0.00"
.Cells(1, ColDep + 2).NumberFormat = "0"
' Renseigner la colonne Volume
--> C'est ici que je voudrai faire ma rechercheV
ColDep = ColDep + 12
Next K
End With
Application.CutCopyMode = False
'Créer un nouvel onglet
Sheets("Feuil2").Name = "Select for gap " & Sheets("Feuil1").Range("B1") & " " & Sheets("Feuil1").Range("B2")
End Sub
J'ai oublié de préciser que je veux les résultats de la fonction dans le classeur macro, feuille2 de G6 jusqu'à la fin de mes lignes.
Merci
Je dois rajouter le chemin d'acces au fichier volume? c'est bien ça ?
J'ai rajouté ceci mais la macro bloque à la 3ème ligne ci dessous.
Est ce que à la place d'avoir à mettre le chemin d'acces ca pourrai pas reconnaitre le fichier volume s'il est ouvert ?
C'est à dire que l'utilisateur n'ait qu'a ouvrir le fichier volume.
Merci d'avance !
Chemin = ThisWorkbook.Path & "G:\shopper_insights\modeles\Macro_prix"
Fichier = "volume.xlsx"
If Dir(Chemin & Fichier) = "" Then
MsgBox "Fichier (" & Fichier & ") introuvable : Fin du programme"
End
End If
Bonjour
Pour indiquer le chemin avec la version 1
Chemin = "G:\shopper_insights\modeles\Macro_prix\"Dans cette version il faut le fichier "Volume.xlsx" ouvert
Merci pour la 2ème version.
Un dernier petit coup de main : je veux que ca aille chercher la colonne B quand il y a écrit SM en B2 et la colonne C lorsqu'il y a ecrit HM en B2.
Là il me semble que ca prend toujours que la colonne B.
Merci !
Bonjour
Enlèves l'espace après HM dans la cellule B2
Ou alors modifies la ligne correspondante
' Colonne de retour pour le RECHERCHEV
ColonneRetour = IIf(UCase(Trim(Ws.Range("B2"))) = "HM", 3, 2)