Rechercher une valeurs pour la copier dans une autre feuille

Bonjour à tous,

Tout d'abord je précise que je suis débutante en VBA...

Voilà mon soucis(gestion de stock)

j'ai une 1ere feuille("feuille de saisie") dans laquelle on sasit l'objet (nommé "pnx_choisi" dans mon VBA), la date de sortie ("date_sortie") et la date de retour ("date_retour").

J'aimerai que l'objet en question soit copier dans mon calendrier (feuille "calendrier 2015"), tout au long des dates (c'est-à-dire que le temps que l'objet est sorti, qu'il soit inscrit à côté des dates correspondantes, je ne sais pas si je suis claire).

Ma feuille calendrier se décompose de cette manière:

colonne C les dates au format JJ/MM/AAAA, et je voudrais que l'objet soit en colonne E.

Voilà mon début de code (qui ne fonctionne pas):

Sub valider_données

Dim date_sortie As Date
  Dim date_retour As Date
  Dim pnx_choisi As Integer

  date_sortie = Range("A" & Selection.Row).Select
  date_retour = Range("M" & Selection.Row).Select
  pnx_choisi = Range("J" & Selection.Row).Select

    Sheets("feuille de saisie").Range("J" & Selection.Row).Copy
    Sheets("calendrier 2015").Columns(3).Find(what = date_sortie).Select
    ActiveCell.Offset(0, 2).Select
    ActiveCell.Paste

End Sub

Merci de votre aide

(Le fichier contenant des informations privées, je ne peux pas le mettre sur le forum)

Bonjour,

Pour une solution concrète et adaptée ... ton fichier serait vraiment le bienvenu ...

Pour le joindre, tu en fais une copie ... et dans le fichier copié, tu effaces toutes les données confidentielles ...

Ce qui importe ... c'est la structure ...

Bonjour Angel, bonjour le forum,

Je verrais les choses comme ça :

Public Sub Macro1()
Dim date_sortie As Date
Dim pnx_choisi As Integer
Dim R As Range

date_sortie = Activesheet.Cells(Active.Row, 1).Value
pnx_choisi = Activesheet.Cells(Active.Row, 10).Value
Set R = Sheets("calendrier 2015").Columns(3).Find(date_sortie, , xlValues, xlWhole)
If Not R Is Nothing Then R.Offset(0, 2).Value = pnx_choisi
End Sub

Mais attention avec la fonction Find et les dates, elles doivent avoir exactement le même format !...

[Édition]

Bonjour James on s'est croisé.

Merci pour vos réponses rapides!

Comment fait-on pour joindre un fichier sur un post?

Thauthème, ta solution ne fonctionne pas, cela bug (erreur 424, objet requis) à la ligne:

date_sortie = Activesheet.Cells(Active.Row, 1).Value

Pour les dates, j'ai fais un format de cellule, date, type JJ/MM/AAAA pour toutes les colonnes contenant des dates

Re,

Pour joindre un fichier ... la video youtube ...

EbNYLzTz5wM

Merci pour la vidéo (au top !)

Voilà mon fichier, mais j'ai du supprimer les autres feuilles car trop volumineuses, donc beaucoup de choses ne fonctionnent pas

Bonjour le fil, bonjour le forum,

Ma proposition adaptée au fichier joint :

Sub Bouton_valider_données()
Dim O As Worksheet
Dim date_sortie As Date
Dim pnx_choisi As String
Dim R As Range

Set O = Sheets("Feuille de saisie")
date_sortie = O.Cells(ActiveCell.Row, 1).Value
pnx_choisi = O.Cells(ActiveCell.Row, 10).Value
Set R = Sheets("calendrier 2015").Columns(3).Find(Format(date_sortie, "dd/mm/yy"), , xlValues, xlWhole)
If Not R Is Nothing Then R.Offset(0, 2).Value = pnx_choisi
End Sub

Merci cela fonctionne !

Est-ce possible de m'expliquer la ligne avec la fonction "find" svp?

De plus, comment faire pour que le pnx choisi s'affiche tout au long des dates (de la date de sortie à la date de retour)? il s'affiche qu'a la date de sortie

Merci encore

Je relance le sujet,

J'ai modifié mon calendrier afin que cela soit plus facile.

J'aimerai que lorsque l'objet est saisi, il soit rentré dans la colonne correspondante (chaque objet a sa colonne) dans la feuille calendrier, et ce pendant le nombre de jours (la durée est donnée à la feuille de saisie, "durée prévisionnelle" en jours ouvrés).

Merci d'avance

Bonjour,

Maheureusement, le fichier que tu as posté ne permet pas de faire des tests ...

Du coup, il faudrait que tu testes le code suivant ...

Sub Bouton_valider_données()

Dim A As Worksheet
Dim date_sortie As Date
Dim pnx_choisi As String
Dim conduc As String
Dim dur_prev As Integer
Dim R As Range
Dim x As Integer
Dim i As Integer

Set A = Sheets("Feuille de saisie")
date_sortie = A.Cells(ActiveCell.Row, 1).Value
conduc = A.Cells(ActiveCell.Row, 4).Value
pnx_choisi = A.Cells(ActiveCell.Row, 10).Value
dur_prev = A.Cells(ActiveCell.Row, 12).Value

Set R = Sheets("calendrier 2015").Columns(3).Find(Format(date_sortie, "dd/mm/yy"), , xlValues, xlWhole)
x = Application.Match(pnx_choisi, Sheets("calendrier 2015").Range("A2:IV2"), 0)

  For i = x To x + dur_prev - 1
    Sheets("calendrier 2015").Cells(R.Row, i).Value = conduc
  Next i

End Sub

Merci pou la réponse très rapide !

Cependant cela bug, "erreur d'exécution 438: propriété ou méthode non gérée par cet objet" à la ligne

dur_prev = A.Cells(ActiveCell.Row, 12).Value

Je crois que vous n'avez pas cerné mon soucis car dans votre code vous faites apparaître "conduc" et je n'en ai pas besoin.

Je vais tenter d'être plus claire:

L'objet choisi "pnx_choisi" (AK17...) doit apparaître dans la feuille calendrier de la date de sortie à la date de retour, et non le conduc.

J'espère que je suis claire dans mes explications...

Merci

Re,

Ton fichier joint corrigé ...

Merci pour ta réponse !

cependant cela bug à la ligne:

x = Application.Match(pnx_choisi, Sheets("calendrier 2015").Range("A2:IV2"), 0)

Peux-tu m'expliquer comment fonctionne "application.match"?

Merci

Re,

Je viens de re-faire le test ... pas de bug ... (dans le fichier test ...)

Attention à la transposition ... dans ton vrai fichier ... pour que cela bugge ... il faut que le champ choisi ne soit pas présent dans ta Feuille Calendrier ...

Re,

Quand je change la date de sortie, cela m'affiche le bug..

De plus, si je fais ajouter une ligne via le bouton +, que je rentre une date de sortie et une durée, cela ne fonctionne pas...

Re,

Difficile de deviner les tests que tu effectues de ton côté ... le changement de date de sortie n'intervient pas du tout dans la macro ...

Dans tous les cas, la macro ne fait que rechercher ligne et colonne ... donc il faut impérativement que les valeurs choisies soient bien présentes dans ta Feuille calendrier ...

Rechercher des sujets similaires à "rechercher valeurs copier feuille"