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

copy donnees dans colonne donnee

  • 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é
Salut Chers Membres du Forum

Dans mon fichier ci-joint ; la macro suivante doit copier et coller en valeur les donnees de A5:A14 dans la plage appropriée.

Sub copy()
Dim dDate As Date, rngFind As Range
dDate = Range("B2").Value
Set rngFind = Range("C4:N4").Find(What:=dDate, LookAt:=xlWhole, MatchCase:=False)
If Not rngFind Is Nothing Then
Range(Cells(5, rngFind.Column), Cells(14, rngFind.Column)).Value = Range("A5:A14").Value
End If
End Sub

Mon problème est que cela ne marche pas.
Pouvez vous corriger ma macro? Merci
 

Pièces jointes

Bonjour,

B2 contient 05/05/2019 et G4 contient 01/05/2019.

Find peut poser des pb avec les dates(format). Il vaut mieux rechercher avec Match.

VB:
Sub copy()
     dDate = Range("B2").Value
     temp = CDbl(DateSerial(Year(dDate), Month(dDate), 1))
     p = Application.Match(temp, Range("C4:N4"), 0)
     If Not IsError(p) Then
       [a5:A14].Value = [c5].Offset(, p - 1).Resize(10).Value
     End If
End Sub

Boisgontier
 

Pièces jointes

Dernière édition:
Merci pour le coup d'œil
Décidément!!!!
 
C'est super!!!
Une ptite modif
C'est plustot:
VB:
Sub copy()
     dDate = Range("B2").Value
     temp = CDbl(DateSerial(Year(dDate), Month(dDate), 1))
     p = Application.Match(temp, Range("C4:N4"), 0)
     If Not IsError(p) Then
        [c5].Offset(, p - 1).Resize(10).Value=[a5:A14].Value 
     End If
End Sub

J'aimerais savoir comment faire la declaration des variables p ; temp
Merci c'est Super!!
 
Bonjour,

VB:
Sub copy()
     Dim Ddate As Date, Temp As Long, p As Integer
     Ddate = Range("B2").Value
     Temp = CLng(DateSerial(Year(Ddate), Month(Ddate), 1))
     p = Application.Match(Temp, Range("C4:N4"), 0)
     If Not IsError(p) Then
       [c5].Offset(, p - 1).Resize(10).Value = [a5:A14].Value
     End If
End Sub

Boisgontier
 
Dernière édition:
- 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
680
Réponses
2
Affichages
376
Réponses
2
Affichages
569
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…