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

7macro.xlsm (53.86 Ko)
10volume.xlsx (30.90 Ko)

Bonjour

Les 2 fichiers dans le même répertoire

A tester

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)
Rechercher des sujets similaires à "recherchev"