Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Transfert de données en multicritères

  • Initiateur de la discussion Initiateur de la discussion gillmo
  • 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 !

gillmo

XLDnaute Occasionnel
Bonjour le forum,

Je souhaite pouvoir transférer des données de la feuille import à la feuille MSBC, en fonction d'un matricule et des codes situés en colonne D, et l'indiquer dans la colonne du mois correspondant au mois sélectionné en B1.

Vous allez me dire que je pourrai passer par un sommeprod, mais le souci c'est que les données de la feuille import seront écrasé chaque mois, et que bien entendu je dois pouvoir garder l'historique mois après mois.

J’espère que ce sera suffisamment clair et je vous joins un fichier avec pour que vous me permettiez de débuter mon code. Merci d'avance.

Cordialement.
 

Pièces jointes

Re : Transfert de données en multicritères

hello le forum,

j'ai finalement réussi à faire ce dont je voulais, mais de manière différente. J'aimerai savoir s'il est possible de condenser mon code notamment sur la partie des mois, et de quelle manière.

Merci.

Code:
Sub recherche()
For i = 4 To 300
If Range("B1") = "Janvier" Then j = 6
If Range("B1") = "Février" Then j = 7
If Range("B1") = "Mars" Then j = 8
If Range("B1") = "Avril" Then j = 9
If Range("B1") = "Mai" Then j = 10
If Range("B1") = "Juin" Then j = 11
If Range("B1") = "Juillet" Then j = 12
If Range("B1") = "Août" Then j = 13
If Range("B1") = "Septembre" Then j = 14
If Range("B1") = "Octobre" Then j = 15
If Range("B1") = "Novembre" Then j = 16
If Range("B1") = "Décembre" Then j = 17
If Range("B1") = "" Then If MsgBox("Veuillez selectionner un mois", vbOKOnly) = vbOK Then Exit Sub
With Sheets("MSBC")
If Cells(i, 5) <> "" Then
On Error Resume Next
 .Cells(i, j) = WorksheetFunction.VLookup(.Cells(i, 5), Sheets("Import sal").Range("A:G"), 7, False)
End If
End With
Next i
End Sub
 
Re : Transfert de données en multicritères

Bonjour,

Code:
Sub recherche()
    For i = 4 To 300
        If Range("B1") = "" Then
            MsgBox "Veuillez selectionner un mois", vbExclamation
            Exit Sub
        End If
        j = 5 + Month("1 " & Range("B1"))       
        With Sheets("MSBC")
            If Cells(i, 5) <> "" Then
                On Error Resume Next
                .Cells(i, j) = WorksheetFunction.VLookup(.Cells(i, 5), Sheets("Import sal").Range("A:G"), 7, False)
            End If
        End With
        j=0 'réinitialiser J
    Next i
End Sub

A+
 
Re : Transfert de données en multicritères

Bonjour,

Peut-être que tester la présence d'un nom de mois dans B1 serait judicieux, au cas où l'utilisateur final mette autre chose.

A+
 
- 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
4
Affichages
586
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…