XL 2016 Renseigner une plage 2 a partir d'une plage 1 selon le mois.

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

KTM

XLDnaute Impliqué
Bonsoir chers tous
je voudrais renseigner une plage 2 a partir d'une plage 1 selon le mois choisi.
Jai fais une macro mais elle ne fonctionne pas comme je souhaite.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
    Dim Rg As Range, R As Range
    Dim plg1 As Range, plg2 As Range
    Dim mydate As Date
    mydate = CDate([C2])
    
    Set Rg = Sheets("Base 1").Range("C3:N3").Find(CDate(mydate))
    Set R = Sheets("Base 2").Range("E4:P4").Find(CDate(mydate))
          Set plg1 = Range(Rg.Address).Offset(1).Resize(4)
          Set plg2 = Range(R.Address).Offset(1).Resize(4)
          plg2 = plg1
End If
End Sub
 

Pièces jointes

Bonsoir KTM,
Une autre approche avec :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
    Dim C1%, C2%    ' C1 colonne Base1, C2 colonne Base2
    With Sheets("Base 1")
        C1 = Application.Match(Target, .[3:3], 0)
        C2 = Application.Match(Target, [4:4], 0)
        Range(Cells(5, C2), Cells(8, C2)) = .Range(.Cells(4, C1), .Cells(7, C1)).Value
    End With
End If
End Sub
 

Pièces jointes

Dernière édition:
Bonsoir KTM,
Une autre approche avec :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
    Dim C1%, C2%    ' C1 colonne Base1, C2 colonne Base2
    With Sheets("Base 1")
        C1 = Application.Match(Target, .[3:3], 0)
        C2 = Application.Match(Target, [4:4], 0)
        Range(Cells(5, C2), Cells(8, C2)) = .Range(.Cells(4, C1), .Cells(7, C1)).Value
    End With
End If
End Sub
Merci beaucoup . Ca marche
Mais une doléance:
Je voudrais une autre solution au cas ou on devait faire le chargement par un bouton auquel associer la macro.
J'espère ne pas demander plusieurs choses à la fois...
Encore Merci..
 
Bonjour KTM,
Dans le même genre avec un bouton :
VB:
Option Explicit
Sub AppuiBouton()
Dim F1, F2, C1, C2 ' C1 colonne Base1, C2 colonne Base2
Set F1 = Sheets("Base 1"): Set F2 = Sheets("Base 2")
C1 = Application.Match(F2.[C2], F1.[A3:O3], 0)
C2 = Application.Match(F2.[C2], F2.[A4:O4], 0)
F2.Range(F2.Cells(5, C2), F2.Cells(8, C2)) = F1.Range(F1.Cells(4, C1), F1.Cells(7, C1)).Value
End Sub
 

Pièces jointes

Bonjour KTM,
Dans le même genre avec un bouton :
VB:
Option Explicit
Sub AppuiBouton()
Dim F1, F2, C1, C2 ' C1 colonne Base1, C2 colonne Base2
Set F1 = Sheets("Base 1"): Set F2 = Sheets("Base 2")
C1 = Application.Match(F2.[C2], F1.[A3:O3], 0)
C2 = Application.Match(F2.[C2], F2.[A4:O4], 0)
F2.Range(F2.Cells(5, C2), F2.Cells(8, C2)) = F1.Range(F1.Cells(4, C1), F1.Cells(7, C1)).Value
End Sub
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

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
831
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
551
Réponses
3
Affichages
816
Réponses
12
Affichages
1 K
Retour