Copie de cellule avec plusieurs conditions

  • Initiateur de la discussion Initiateur de la discussion nayz
  • Date de début Date de début

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 !

N

nayz

Guest
Bonjour,

je sollicite beaucoup votre aide ces jours-ci et merci beaucoup à tous ceux qui me répondent, bebere, bruno 😉.
Alors voilà mon problème, dans le fichier joint j'ai deux tableaux, un sur chaque feuille avec la liste des élèves, les notes les mentions et la date.
Je voudrais, dans la feuill2, afficher la note de l'élève en fonction de la date et du prénom de l'élève.
Sur la feuille2, le prénom de l'élève apparait dans la cellule B5 (il apparaitra toujours là).
Donc, je voudrais trouver le prénom "antoine" dans la colonne A de la feuille 1, et afficher sa note (qui se trouve en feuil1 colonne B) sur la ligne qui correspond à la date en feuille 2.
Vous voyez ce que je veux dire??
 

Pièces jointes

Re : Copie de cellule avec plusieurs conditions

Bonsoir,
Vois pas trop la date en colonne B, mais bon

Edit : Désolé, une petite coquille dans la formule provoque un décalage de 1 ligne
remplace 1 par 2

Code:
=SI(ESTNA(INDEX(Feuil1!$B$[COLOR="Blue"][B][SIZE="4"]2[/SIZE][/B][/COLOR]:$H$15;EQUIV(B$5;Feuil1!$A$2:$A$15;0);EQUIV($A6;Feuil1!$B$1:$H$1;0)));"";INDEX(Feuil1!$B$[COLOR="Blue"][B][SIZE="4"]2[/SIZE][/B][/COLOR]:$H$15;EQUIV(B$5;Feuil1!$A$2:$A$15;0);EQUIV($A6;Feuil1!$B$1:$H$1;0)))

A+
kjin
 

Pièces jointes

Dernière édition:
Re : Copie de cellule avec plusieurs conditions

Merci bcp les amis. Je pensais plus à un code VBA, mais je prends.
Le truc c'est que les notes et la date de la feuil1 seront actualisés sur les mêmes cellules. Mais merci quand même
 
Re : Copie de cellule avec plusieurs conditions

Bonjour,
C'est surtout que je ne pige pas le fonctionnement de ton classeur !
Y a t'il une feuille par mois ou non ?
Code:
Sub ExportNote()
Dim plage As Range, cel As Range, Dat As Date, ws As Worksheet, dt As Range
Set plage = Range("A4:A" & Range("A65000").End(xlUp).Row)
Dat = Range("B1")
For Each cel In plage
    For Each ws In ActiveWorkbook.Sheets
        If ws.Name = cel Then
            Set dt = ws.Range("A6:A" & ws.Range("A65000").End(xlUp).Row).Find(Dat)
            If Not dt Is Nothing Then
                dt.Offset(0, 1) = cel.Offset(0, 1)
                Exit For
            End If
        End If
    Next
Next

End Sub
A+
kjin
 

Pièces jointes

Re : Copie de cellule avec plusieurs conditions

Oui il n'y a qu'un feuille par mois, en fait tu auras compris que c'est un cas d'exemple. Ce que je fais exactement c'est pour mon stage et c'est bien différent. En fait ce que j'ai appelé NOTES, ce sont des taux que je télécharge quotidiennement d'un site.
Ensuite ces taux sont exportées vers une deuxième feuille en fonction de la date et du nom de la cellule (ici le prénom de l'élève).
J'espère que je me fais comprendre, ce n'est pas évident pour moi. Et je suis désolé si je ne donne pas exactement les bonnes infos mais ça serait encore plus farfelu.
Je vais essayer d'adapter ton code et je te reviens
 
Re : Copie de cellule avec plusieurs conditions

Je vous mets ici les véritables données dont je dispose.
J'ai copié les données d'un autre tableau, c'est pourquoi vous ne trouverez pas les codes et macros avec lesquelles je travaille.
Tout ça parceque le fichier source avec lequel je travaille appartient à la société avec laquelle je travaille et je ne peux pas vous donner ça pour cause de confidentialité n'est-ce pas?😉
Donc, en premier lieu je charge les taux sur la feuil1 à partir d'un site.
Ensuite, je charge les données que je veux sur la deuxième feuille à partir d'un autre fichier excel.
Ce que je voudrais, c'est un code qui me permet de retrouver la devise qu'il y a en cellule C9, F9, I9...de la feuil2 dans la colonne D de la feuil1. Puis, en fonction de la date, aller mettre le taux correspondant (dans feuil1 colonne E) dans la cellule correspondant à la date et la devise dans feuil2.
Vous voyez un peu mieux maintenant?
Merci bcp pour votre patience
 

Pièces jointes

Re : Copie de cellule avec plusieurs conditions

Re,
...Ce que je voudrais, c'est un code qui me permet de retrouver la devise qu'il y a en cellule C9, F9, I9...de la feuil2 dans la colonne D de la feuil1....
En C9, F9, I9 de la feuille 2, il y a un taux et non une devise !
Si c'est un trompage de ligne, je dirais que les devises sont en C7, F7...
Puis, en fonction de la date, aller mettre le taux correspondant (dans feuil1 colonne E) dans la cellule correspondant à la date et la devise dans feuil2.
Vous voyez un peu mieux maintenant?
Merci bcp pour votre patience
Comme il y a plusieurs fois la même devises (exemple USD en F7 et I7), avec des taux différents, quoi fait-on ? (je ne vois rien en feuille 1 qui puisse nous le dire)
A+
kjin
 
Re : Copie de cellule avec plusieurs conditions

Oui excuse, ce sont les cellules C7...trompage de ma part, dsl.
En réalité, il n'y aura pas deux devises pareilles sur le tableau.
On peut imaginer qu'il y aura cinq devises différentes : GBP, USD, BGN, HUF et CZK par exemple.
On les retrouve sur la colonne D de la feuil1.
J'ai trouvé ce code, mais il faut l'adapter. Il me semble qu'il peut marcher :

Dim plage As Range, cel As Range, Dat As Date, ws As Worksheet, dt As Range
Set plage = Range("D3:A" & Range("D65000").End(xlUp).Row)
Dat = Range("A1")
For Each cel In plage
For Each ws In ActiveWorkbook.Sheets??
If ws.Name = cel Then
Set dt = ws.Range("B9:B" & ws.Range("D65000").End(xlUp).Row).Find(Dat)
If Not dt Is Nothing Then
dt.Offset(0, 1) = cel.Offset(0, 1)
Exit For
End If
End If
Next
Next

End Sub

Mais ça ne marche pas encore
 
Re : Copie de cellule avec plusieurs conditions

Bonsoir,
Utilisation d'INDEX/EQUIV en vba
A adapter
Code:
Sub Aboulespepetes()
With Sheets("feuil2")
    Col = .Cells.SpecialCells(xlCellTypeLastCell).Column
    Lign = .Cells.SpecialCells(xlCellTypeLastCell).Row
    Set PlgDev = .Range(.Cells(7, 3), .Cells(7, Col))
    Set PlgDat = .Range("B9:B" & Lign)
    Set PlgTaux = .Range(.Cells(9, 3), .Cells(Lign, Col))
End With
With Sheets("Feuil1")
    .Range("A1") = DateValue(.Range("A1"))
    Set Plg = .Range("D3:D" & .Range("D65000").End(xlUp).Row)
    Plg.Offset(, 1).ClearContents
    For Each cel In Plg
        x = Application.Index(PlgTaux, Application.Match(.Range("A1"), PlgDat, 0), _
        Application.Match(cel, PlgDev, 0))
        If Not IsError(x) Then cel.Offset(0, 1) = x
    Next
End With

End Sub
A+
kjin
 

Pièces jointes

Re : Copie de cellule avec plusieurs conditions

Je crois qu'on ne sait pas bien compris Kjin,

voilà sur ce fichier j'ai modifié ce que t'as fait.
J'y ai mis le code avec lequel je charge mes données du site.
Ensuite c'est en focntion de ces données que je remplis mon tablleau en feuil2 pas l'inverse.
Les taux que je veux copier se trouvent en colonne E de la feuil1.
Je veux les mettre en colonne D de feuil2 en focntion de la date et de l'intitulé du "Code" (colonne D de feuil1). Le code en feuil2 C7 F7...doit matcher celui de la feuil1 D3😀.
Je crois qu'on se comprendra mieux maintenant.
C'est ma faute en fait, je me suis mal exprimé et avec mon trompage je t'ai embrouillé. Dsl
 

Pièces jointes

Re : Copie de cellule avec plusieurs conditions

Bonsoir,
Ben ça doit aller dans ce sens là alors
Code:
Sub Transfert()
Dim Dat As Date, PlgDev As Range, PlgTaux As Range
Dim dCol As Integer, c As Range, i As Integer, x
With Sheets("feuil1")
    Dat = .Range("A1")
    Set PlgDev = .Range("D3:D" & .Range("D65000").End(xlUp).Row)
    Set PlgTaux = .Range("E3:E" & .Range("E65000").End(xlUp).Row)
End With
With Sheets("Feuil2")
    dCol = .Range("IV7").End(xlToLeft).Column
    Set c = .Range("B9:B" & .Range("B65000").End(xlUp).Row).Find(Dat)
        If Not c Is Nothing Then
            For i = 3 To dCol Step 3
            x = Application.Index(PlgTaux, Application.Match(.Cells(7, i).Value, PlgDev, 0))
            If Not IsError(x) Then .Cells(c.Row, i + 1) = x
            Next
        End If
End With

End Sub
A+
kjin
 

Pièces jointes

Re : Copie de cellule avec plusieurs conditions

Merci beaucoup Kjin, ça marche!!
J'ai tripatouillé un peu le code parcequ'il m'affichait des codes d'erreur quand je le faisais tourner, mais c'est génial, ça roule bien.
Merci bcp
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour