Macro Excel identifier deux dates

Résolu
jacques -  
 soha -
Bonjour,

Je crée une macro qui me permette de prélever des données depuis une base et de les coller, en fonction de la date dans un fichier d'analyse...
Voici le code :

Workbooks.Open Filename:="D:\Vente\Base.xls", _
UpdateLinks:=0
ActiveWorkbook.UpdateLink Name:="D:\Analyse\choux.xls", Type _
:=xlExcelLinks
Workbooks("Vente.XLS").Worksheets("Base").Range("E4:BK4").Copy
copie des données depuis le fichier base

Prueba = ("[Vente.XLS]Base!r1c12")
date de mise à jour du fichier, qui me permettra de coller l'information au bon endroit sur le fichier d'analyse

Windows("analyse.XLS").Activate
Sheets("Choux").Select

K = 1
Do While Worksheets ("Choux").Cells(K, 1) <> (PRUEBA)
K = K + 1
Loop
Et l'écriture ne permet pas qu'il "reconnaisse" la date

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
End

Merci d'avance pour l'aide!

5 réponses

  1. Krysstof Messages postés 1659 Statut Membre 295
     
    je ne comprends pas tout dans tes explication, surtout le dernier commentaire sur "l'écriture qui ne permet pas qu'il reconnaisse la date"...

    mais bon, je vois un truc qui me choque :

    Prueba = ("[Vente.XLS]Base!r1c12")

    essaye plutot
    Prueba = Workbooks("Vente.XLS").sheets("Base").cells(1,12).Value
    0
  2. jacques
     
    Bon ça avance un peu...seul problème, il colle les données de juin en juillet...^^

    Workbooks("vente.XLS").Worksheets("base").Range("E4:BK4").Copy

    prueba = Workbooks("vente.XLS").Worksheets("base").Cells(1, 12).Value

    Windows("analyse.XLS").Activate
    Sheets("choux").Select

    K = 175
    Do While Cells(K, 1).Value <> prueba
    K = K + 1
    If K = 180 Then End
    Loop
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=True, Transpose:=False

    @Krysstof : "l'écriture qui ne permet pas qu'il reconnaisse la date"...
    c'était pour dire que j'avais un problème de syntaxe, les .Value manquants...
    0
  3. Krysstof Messages postés 1659 Statut Membre 295
     
    hum...

    "Selection.PasteSpecial"

    tu sélectionne jamais la cellule Cells(K, 1)

    essaye de rajouter une selection de la cellule dans la boucle

    ou alors de faire le PasteSpécial sur la référence complete de la cellule

    Cells(K, 1).pastespecial (ou Cells(K-1, 1), ca va dépendre de l'idée de ton algorithme... le mieux c'est de faire la selection de la cellule dans la boucle...)
    0
  4. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    Salut le forum

    Pourquoi ne pas utiliser la méthode Find

        With ActiveSheet
            Set rFound = .Columns(1).Find(What:=LaDate, After:=.Cells(1, 1), LookIn:=xlValues, _
                LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                    MatchCase:=False, SearchFormat:=False)
    
            If Not rFound Is Nothing Then
            'ton action
            End If
    
        End With
    

    Mytå
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jacques
     
    Re-bonjour!

    donc voilà, maintenant ça marche, merci Krysstof, il manquait bien la sélection de la cellule dans le PasteSpecial...

    prueba = Workbooks("vente.XLS").Worksheets("base").Cells(1, 12).Value

    Windows("analyse.XLS").Activate
    Sheets("Choux").Select

    K = 1
    Do While Cells(K, 1).Value <> prueba
    K = K + 1
    Loop
    Cells(K, 3).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=True, Transpose:=False

    Bonne journée!
    0
    1. soha
       
      Bonjour,
      J'ai à peu près le même problème que celui de jaques, mais moi j'utilise pas de macro
      je cherche jute une fonction qui permet d'identifier les dates
      je veux afficher les résultats d'une extraction sur une ligne contenant une date précise, cette date se trouve en même temps en feuil1 et feuil2 comme expliqué sur le fichier suivant:
      http://www.cijoint.fr/cjlink.php?file=cj201008/cijYQX7H0X.xlsx
      merci
      0