Macro Excel identifier deux dates

Résolu
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. 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
    1. 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
      1. 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
        1. Contributeur
          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
          1. 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. 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