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

copy donnees dans colonne donnee

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

  • Classeur1.xlsm
    21.3 KB · Affichages: 3

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • Copie de Classeur1.xlsm
    22.4 KB · Affichages: 3
Dernière édition:

KTM

XLDnaute Impliqué
Merci pour le coup d'œil
Décidément!!!!
 

KTM

XLDnaute Impliqué
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!!
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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:

Discussions similaires

Réponses
2
Affichages
154
Réponses
28
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…