XL 2013 Résultat d'une fonction "Max" d'un classeur dans une variable d'un autre classeur ?

Helios77

XLDnaute Nouveau
Bonjour,
Soit :un classeur excel2013 (Classeur1.xlsm) dont l'une des Feuilles (Feuille4) contient un tableau (avec entêtes) dont l'une des colonnes (Colonne C) propose une liste de dates (format court) dont je souhaite extraire la date la plus récente et l'attribuer à une variable (Date_Plus_Recente) dans un autre Classeur2 (classeur2.xlsm) pour l'utiliser ensuite dans une macro VBA
Les 2 classeurs sont ouverts.

Dans un 1er temps, j'ai utilisé l'enregistreur de macro qui me propose donc la solution suivante, le résultat étant stocké dans une cellule active du classeur2.
ActiveCell.FormulaR1C1 = "=MAX('[Classeur1.xlsm]Feuill4'!C3)"

Puisque je souhaite utiliser une variable et non le contenu d'une cellule, j'ai donc tenté le code suivant :
Dim Date_Derniere_Facture as Long
Date_Plus_Recente = (MAX('[Classeur1]Feuille4'!C3)"

Mais bien évidemment cela ne fonctionne pas (erreur de compilation) et j'ai beau retourner le problème dans tous les sens et consulter les forums, je sèche lamentablement.
Si une bonne âme veut bien me donner un coup de main, je l'en remercie d'avance.
Cordialement
Helios
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Helios,
Tout d'abord je pense que la formule MAX('[Classeur1.xlsm]Feuill4'!C3) est erronée.
En effet elle ne réfère qu'à une seule cellule, donc le max va être assez facile à calculer. :)
Il faut préciser une plage.

Pour la formule en VBA, essayez :
VB:
Date_Plus_Recente=Application.Max(Workbooks("Classeur1.xlsm").Sheets("Feuill4").Range("C3:C1000"))
Il va chercher le max de C3:C1000 de la feuille Feuil4 du classeur Classeur1.xlsm.
 

Helios77

XLDnaute Nouveau
Bonjour,
De nouveau en galère avec la fonction RechercheV dans un autre classeur.
Grâce à vous j'ai donc maintenant extrait la date de la facture la plus récente de la colonne1 de la feuille de Calcul "Historique Facture" de mon Classeur1 ("facturation.xlsm") . Cette date est dans une variable ("Date_Derniere_Facture") du code VBA de mon classeur 2.

A partir de cette date, j'ai besoin maintenant de retrouver le numéro de facture (actuellement sous la forme "ANNEE_xx) correspondante à cette date et qui se trouve dans la colonne 2 du tableau dont j'ai extrait la date, pour le mettre EGALEMENT dans une variable (Numero_Derniere_Facture).

J'ai donc écrit le code suivant (dans la subroutine AutoOpen Du classeur 2) :
Dim Date_Derniere_Facture as Long 'Long car la fonction Lookup me renvoie la date extraite sous la forme 44283
Dim Numero_Derniere_Facture as string
Date_Derniere_Facture = Application.Max(Workbooks("Facturation.xlsm").Sheets("Historique facture").Range("A:A"))

Numero_Derniere_Facture = [VLOOKUP(Date_Derniere_Facture,[Facturation.xlsm]Historique facture!A:G,2,0)]

Aucun souci avec la date extraite, mais pour le numéro de facture j'ai une erreur 13 'Incompatibilité de type".
Si vous avez une idée ? Merci à vous
Cordialement
Helios
 

Helios77

XLDnaute Nouveau
Bonsoir,
Voici mes fichiers exemples : Le code est dans le classeur 2 qui ouvre le Classeur 1 si celui-ci n'est pas déjà ouvert
Comme expliqué je souhaite retrouver DANS UNE VARIABLE le numéro de facture qui correspond à la date la plus récente dans le tableau du classeur1
Merci de ton aide
Cordialement
a+
 

Pièces jointes

  • Classeur1.xlsm
    12 KB · Affichages: 8
  • Classeur2.xlsm
    50.7 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 190
Membres
112 679
dernier inscrit
Yupanki