Copier la colonne recherchée

Bonjour,

je cherche à réaliser une macro pour ce cas :

Dans la feuilleA, je choisi dans la colonne C une valeur dans une liste de choix, ceci pour une plage de 110 lignes

A la validation sur la cellule, je cherche la valeur renseigné dans les colonnes de la feuilleB;

Si la valeur existe -> je copie et transpose la colonne (59 lignes) de la valeur cherchée de la feuilleB vers la feuilleA. 1 colonne après la cellule active.

voici mon code :

Sub recherche()

Dim metier As String

Sheets("feuilleA").Activate

For Each cell In Range("C9:C113")

metier = cell.Value

With Sheets("feuille2")

Set c = .Columns("D:X").Find(metier)

'si c existe alors

If Not c Is Nothing Then

'copie et transpose la plage du metier trouvé

.........>là je bloque

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=True

'copie sur la feuille1 devant la cellule active

..........> et ici également

Else

MsgBox "Ce metier n'existe pas!"

End If

End With

Next cell

End Sub

Bonjour

Un petit fichier avec un exemple de résultat serait un plus pour t'aider à trouver une solution

Bonjour,

Merci de ton retour,

Ci-joint une fichier exemple ...

et une revue de l'explication

je cherche à réaliser une macro pour ce cas :

Dans la Matrice, je choisi dans la colonne C, le métier dans une liste de choix,

A la validation sur la cellule, je cherche le métier renseigné dans les colonnes de la feuille Initialisation;

Si le métier existe -> je copie et transpose la colonne métier de la feuille Initialisation vers la matrice 1 colonne après la cellule active.donc du métier.

Merci pour l'aide que vous voudrez bien m'accorder.

18modeleexemple.xlsx (13.80 Ko)

Bonjour

A tester

Bonjour Banzai64,

Merci pour ton code, il y a des lignes que j'ai su lire d'autre un peu moins.

D'où ma question, est-il possible de récupérer les coches dans la feuille Initialisation. Car pour le moment il récupère le nom de la formation?

Où pourrais tu m'expliquer cette partie du code ?

If Target = "" Then

DerCol = Cells(1, Columns.Count).End(xlToLeft).Column

Range(Range("D" & Target.Row), Cells(Target.Row, DerCol)).ClearContents

Comme mon but et également d'apprendre à pêcher pour ne plus mourir de faim.

Merci encore.

Manyok972

Bonjour

Tu ne veux que récupérer les "X" ?

Cela va simplifier la macro

Option Explicit

Sub Recopie(Recherche As Range)
Dim Cel As Range
Dim F1 As Worksheet, F2 As Worksheet
Dim DerLig As Long

  Set F1 = Sheets("initialisation")
  Set F2 = Sheets("Matrice")

  Set Cel = F1.Rows(1).Find(what:=Recherche, LookIn:=xlValues, lookat:=xlWhole)
  If Not Cel Is Nothing Then
    DerLig = F1.Range("A" & Rows.Count).End(xlUp).Row
    F1.Range(F1.Cells(2, Cel.Column), F1.Cells(DerLig, Cel.Column)).Copy
    With F2.Range("D" & Recherche.Row)
      .PasteSpecial Paste:=xlValues, Transpose:=True
      .Select
    End With
    Application.CutCopyMode = False
  Else
    MsgBox "Impossible de trouver " & Recherche
  End If
End Sub
If Target = "" Then
DerCol = Cells(1, Columns.Count).End(xlToLeft).Column
Range(Range("D" & Target.Row), Cells(Target.Row, DerCol)).ClearContents

Si tu effaces la donnée en colonne C de la page "Matrice"

Calcul de la dernière colonne de la ligne 1

Effacement des données de la ligne correspondante à la cellule effacée

Banzai64,

C'est parfait cela marche au top !!!

Par contre je réalise à quel point je dois progresser !!

Merci encore...

Rechercher des sujets similaires à "copier colonne recherchee"