Copier données selon valeur d'une cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

youklebambou

XLDnaute Junior
Bonjour à tous,
je cherche à copier les données d'une feuille 2 sur une feuille 1 mais en fonction des données d'une cellule.
je m'explique : sur la feuille 1 j'ai en B1 une date
en colonne A j'ai les dates du mois. quand je change la date B1 je souhaite que ca me copie et colle les données de la feuille 2 en face de la date
j'ai mis un fichier en pièce jointe pour être plus clair;
J'ai deja commencé un code mais il ne fonctionne pas...
merci d'avance
 

Pièces jointes

Bonjour,

avec ce code:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$B$1" Then Exit Sub
Set F = Feuil2
j = Day(Range("B1")) + 3
F.[B6].Copy Destination:=Cells(j, 2)
End Sub

ou celui-ci
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Then Exit Sub
Set F = Feuil2
j = Day(Range("B1")) + 3
F.[B6].Copy Destination:=Cells(j, 2)
End Sub

à+
Philippe
 
Genial !!!! par contre je me suis aperçu que la ligne des valeurs (ici valeur F) en feuille 2 peut changer et se retrouver ailleurs.... en gros tu crois que dans ton code on peut inclure une recherche de nom precis avant la copie de la colonne correspondante?
 
Re,

je me suis aperçu que la ligne des valeurs (ici valeur F) en feuille 2 peut changer et se retrouver ailleurs....

en gros tu crois que dans ton code on peut inclure une recherche de nom precis avant la copie de la colonne correspondante?

Ce sera nécessaire de rechercher la valeur à copier puisqu'elle change de place

pour cela il faudrait voir le fichier

à+
Philippe
 
je me suis mal exprimer... dans la pièce jointe par exemple l'ordre de "valeur A B J F ou R" peut etre modifier (changement de ligne) moi je cherche a copier la valeur (en colonne B) de la valeur F (colonne A) mais Valeur F va etre un coup en ligne 6 un coup en ligne 8 etc etc.... le but etant de chercher le nom "valeur F" et de copier coller la colonne B associé
(je sais vraiment pas si je suis plus clair....)😕
 
bon je suis chiant mais au final il me manque une chose... en fait j'ai plusieurs valeurs a copier dans plusieurs colonnes....je pensais qu'en mettant plusieurs if ça marcherait mais ça a l'air plus complexe....donc en gros il faudrait avec mon exemple : quand je rentre la date , dans la colonne B en face de la date ca me note la valeur F, en C la valeur J et en D la valeur B.....désolé mais je découvre un peu les fonctions...
 
merci !!!! c’était facile mais je bloquais....par contre j'ai une "Private Sub Worksheet_Change(ByVal Target As Range)" avant la formule qui me rapatrie les données d'un fichier .csv....dans un autre fichier j'utilise aussi cette private sub et des que je change la valeur d'une cellule ca prend en compte directement le rapatriement...alors que la je change la cellule et je dois retourner dessus pour que le rapatriement se fait...tu saurais a quoi c'est du???
 
Si ça peux t'aider ma formule :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$F$5" Then Exit Sub

Dim chemin$, nomfichier$
chemin = [W1] & "\" & "ICR"
nomfichier = [Z2] & ".csv"
Set F = Feuil13
Application.ScreenUpdating = False
On Error Resume Next
F.Cells.ClearContents 'RAZ
With Workbooks.Open(chemin & "\" & nomfichier).Sheets(1)
.UsedRange.TextToColumns .UsedRange.Cells(1), xlDelimited, Semicolon:=True
F.[A1].Resize(.UsedRange.Rows.Count, .UsedRange.Columns.Count) = .UsedRange.Value
F.[A1].Resize(.UsedRange.Rows.Count, .UsedRange.Columns.Count).Columns.AutoFit
.Parent.Close False
End With
If Application.CountA(F.UsedRange) Then F.Activate
Sheets("Mai").Select
If Not Intersect(Target, Range("F5")) Is Nothing Then
If Target = "" Then Exit Sub
For Each cellule In Sheets(13).Range("A1:F400")
If cellule = "A" Then Cells(Day(Range("F5")) + 9, 6) = cellule.Offset(0, 1)
If cellule = "B" Then Cells(Day(Range("F5")) + 9, 9) = cellule.Offset(0, 1)
If cellule = "C" Then Cells(Day(Range("F5")) + 9, 11) = cellule.Offset(0, 1)
If cellule = "D" Then Cells(Day(Range("F5")) + 9, 13) = cellule.Offset(-1, 6)
Next cellule
End If
End Sub
 
Re,

Sans explication plus précises, sans voir le fichier et avec ma boule de cristal qui me fait la gueule:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F5")) Is Nothing Then
If Target = "" Then Exit Sub

Dim chemin$, nomfichier$
chemin = [W1] & "\" & "ICR"
nomfichier = [Z2] & ".csv"
Set F = Feuil13
Application.ScreenUpdating = False
On Error Resume Next
F.Cells.ClearContents 'RAZ
With Workbooks.Open(chemin & "\" & nomfichier).Sheets(1)
.UsedRange.TextToColumns .UsedRange.Cells(1), xlDelimited, Semicolon:=True
F.[A1].Resize(.UsedRange.Rows.Count, .UsedRange.Columns.Count) = .UsedRange.Value
F.[A1].Resize(.UsedRange.Rows.Count, .UsedRange.Columns.Count).Columns.AutoFit
.Parent.Close False
End With
If Application.CountA(F.UsedRange) Then F.Activate
Sheets("Mai").Select

For Each cellule In Sheets(13).Range("A1:F400")
If cellule = "A" Then Cells(Day(Range("F5")) + 9, 6) = cellule.Offset(0, 1)
If cellule = "B" Then Cells(Day(Range("F5")) + 9, 9) = cellule.Offset(0, 1)
If cellule = "C" Then Cells(Day(Range("F5")) + 9, 11) = cellule.Offset(0, 1)
If cellule = "D" Then Cells(Day(Range("F5")) + 9, 13) = cellule.Offset(-1, 6)
Next cellule
End If
End Sub

à+
Philippe
 
Mon dieu....c'est à ça qu'on reconnait les boss!!!! ne change pas ta boule de cristal elle fonctionne très bien!!! mon dossier original comporte pas mal de données sensible donc pas moyen de l'envoyer et en faire un autre était compliqué....bref tu as trouvé du 1er coup! bravo et merci 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
232
Réponses
5
Affichages
262
  • Question Question
Microsoft 365 Formule
Réponses
4
Affichages
127
Retour