IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

[Excel/VBA] Boucle et test cellule


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Points : 85
    Points
    85
    Par défaut [Excel/VBA] Boucle et test cellule
    Bonjour,

    J'ai deux petites questions :

    1°)Existe t'il une fonction qui permette d'activé la feuille x avant celle ou on est sans passer par le nom de la feuille ?

    2°)Je souhaite faire que dans ma requete SQL nous puissons comparer le champ 'codearticle" à une selection de 10 nombres récuperer des les 3 feuilles avant celle ou l'on se trouve. Comment m'y prendre ?

    Merci d'avance

    Jim

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut

    C'est simple...
    mais la solution va être compliquée

    1) non il n'y a pas de fonction.
    il va falloir l'écrire

    2) Il faut récupérer les valeurs des cellules des différentes feuilles Excel par automation.
    avec une fonction du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function RecupVal(NomFeuille As String, Cellule As String) As type_à_récupérer
    ' Ouverture du classeur
    ....
    ' Sélection cellule
    RecupVal = AppExcel.Sheets(NomFeuille).Range(Cellule)
    End Function
    Tu appelles ta fonction à partir de la requête. regarde cette source pour comprendre la manière de faire cet appel.

    Pour l'automation Excel, regarde les différents tutoriels.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Points : 85
    Points
    85
    Par défaut
    C'est impossible que tu sois français ou alors... ?
    si si je suis bien français, j'vous jure...

    il va falloir l'écrire
    1) je pensais bien mais tu pourrais m'indiquer quelques fonctions utiliser ?

    2) Dans ce tu m'as ecris tu rentre une valeur dans Recupval ? et si j'en rentre plusieur il faut que je mette "chaine" mais comment va réagir ma requete avec ?

    Merci

    *******************

    En fait je suis en train de poser la question est ce que je créerai pas un table en inserant les 12 mois de l'années (c'est le nom de mes feuilles) et en suite je prends le nom de ma feuille actuelle je remonte de trois grand je prends les 10 veleur, puis de 2 cran...
    Je suis pas programmeur y a t'il une solutrion plus simple ?
    Je veux affiché 5 nombres qui ne sont pas dans les trois feuille d'avant au cellule A1:A6 c'est tout

    Merci encore

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Points : 85
    Points
    85
    Par défaut
    j'ai bien avancé mais je bloque sur la fonction,
    Pour récapituler vite fais j'ai automatisé les onglets pour les 12 mois, j'arrive bien a gerer le pointage vers les différents onglets.
    Par contre donc j'ai encore du mal avec le stockage des valeurs pour la requete
    je fais dans le programme de base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Récuperation  temporaire de tout les valeur des trois mois avant
            For Ctr = Sheets.Count - 5 To Sheets.Count - 3
                temp = MonTab(Ctr)
                MsgBox " Valeur de temp : " & temp & " ..."
                RecupVal (temp)
                Next
    puis la fonction valeur ressemble à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function RecupVal(NomFeuille As String) As String
        RecupVal = AppExcel.Sheets(NomFeuille).Range("A2:A11")
    End Function
    mais j'ai une erreur dans la fonction, personne à une idée ?

    Merci d'avance

  5. #5
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Avec le message d'erreur ce serait mieux.
    Mais je devine ce qui cloche. (désolé pour le temps de réponse mais je voulais que tu te débrouilles un peu avant de te redonner un coup de pouce !!)

    C'est AppExcel qui plante.
    Citation Envoyé par Kikof
    Pour l'automation Excel, regarde les différents tutoriels.
    Il faut instancier Excel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim AppExcel As Excel.Application

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Points : 85
    Points
    85
    Par défaut
    désolé pour le temps de réponse mais je voulais que tu te débrouilles un peu
    Je n'ai rien dis c'est tout à fait normal, merci de m'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function RecupVal(NomFeuille As String) As String
        Dim AppExcel As Excel.Application
        Set AppExcel = New Excel.Application
        RecupVal = AppExcel.Sheets(NomFeuille).Range("A2:A11")
    End Function
    Ca me fait toujours une erreur sur RecupVal en disant ="" (vide quoi)

  7. #7
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    ton code ne dit pas quel fichier Excel doit ouvrir ...

    regarde la FAQ, tu verras tout ce qu'il manque à ton code ...
    http://access.developpez.com/faq/?page=Excel#PilotExcel

    Citation Envoyé par Myogtha
    Je n'ai rien dis c'est tout à fait normal, merci de m'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function RecupVal(NomFeuille As String) As String
        Dim AppExcel As Excel.Application
        Set AppExcel = New Excel.Application
        RecupVal = AppExcel.Sheets(NomFeuille).Range("A2:A11")
    End Function
    Ca me fait toujours une erreur sur RecupVal en disant ="" (vide quoi)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Points : 85
    Points
    85
    Par défaut
    Me revoilà, je n'arrive plus a vous suivre...j'ai lus l'exemple que m'a donné Cafeine j'ai modifié mon code pour en arrivé là, avec une erreur sur la partie "RecupVal = AppSheet.Sheets...", les deux sheets me paraissent anormal, par contre je trouve bizarre que l'on soit obligé de passer par tout ça quand on crée simplement un fonction excel pour excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function RecupVal(NomFeuille As String) As String
        Dim AppExcel As Excel.Application
        Dim AppBook As Excel.Workbook
        Dim AppSheet As Excel.Worksheet
     
        Set AppExcel = New Excel.Application
        Set AppBook = AppExcel.Workbooks.Open("D:\Documents and Settings\jmbacou.AET-TECH\Bureau\Suivi_Magasin_test.xls")
        Set AppSheet = AppBook.Worksheets.Add
        AppSheet.Name = "Toto"
     
        RecupVal = AppSheet.Sheets(NomFeuille).Range("A2:A11")
    End Function
    je veux bien de l'aide ou une expliquation pour me remettre dans le bon chemin, je rappel que je cherche à stocker quelques parts temporairement 30 valeurs correspondants à 10 valeurs des trois feuilles avant, afin de me permettre lors du lancement de ma reqeuete de dire codearticle différent des 30 valeurs , je suis clair ? lol j'ai du mal dans les expliquations...

    Edit : j'ai comme l'impression que je me suis mal exprimé et que vous avez cru que j'etais sous access non ? je suis peut étre pas sur la bonne rubrique du forum mais à la base en faite c'etait par rapport à la requete

  9. #9
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Un peu qu'on y croit ... ton code est un code d'automation Excel ... ce qui le plus souvent inutile lorsqu'on se trouve déjà dans Excel.

    Reformule ton besoin, c'est pour moi et pour l'instant, très loin d'être clair.



    Citation Envoyé par Myogtha
    ../..
    Edit : j'ai comme l'impression que je me suis mal exprimé et que vous avez cru que j'etais sous access non ? je suis peut étre pas sur la bonne rubrique du forum mais à la base en faite c'etait par rapport à la requete

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 328
    Points : 85
    Points
    85
    Par défaut
    Oky je déleste ce post et je vais poster un question plus clair de suite

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/09/2014, 16h20
  2. [Excel VBA]fonction dans une cellule qui modifie une autre cellule
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/01/2007, 17h43
  3. [VBA][Débutante] Fonction Excel avec Boucle
    Par Inelukia dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 11/01/2006, 19h31
  4. [VBA] [EXCEL 97] Formatage automatique des cellules
    Par plante20100 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2005, 09h49
  5. [VBA] Les propriétés de cellule dans Excel
    Par Kylen dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 05/07/2004, 23h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo