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

Macros et VBA Excel Discussion :

choix de feuille selon critères dans un autre classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Par défaut choix de feuille selon critères dans un autre classeur
    Bonjour,

    J'ai reussi à faire une mise à jour dans un classeur de données annuelles (700 à 850 codes articles dans une autre feuille où il y a tout le stock (8000 codes articles), certaines données changent annuellement pour environ 10% du stocks. Cette gestion tout à fait personnelle m'évite d'aller dans une application assez lourde et longue lorsque je ne veux que faire de la visu. Seulement, il faut aussi mettre cette application à jour ce qui est long et fastidieux. Cette maj se fait par un import/export de fichier .csv dans cette application aprés avoir rentré ces données dans un autre fichier excel...
    Je resume => application => import du fichier excel => maj => enregistrement de ce fichier .xls en .csv=> export dans l'application
    Je pense que cette maj grace à une macro du meme style que mon fichier perso peut fonctionner. Sauf qu'il faut faire un choix de feuille selon le code de l'objet
    => si ce code contient un J select feuille 3 du fichier 2, sinon select la feuille 1 du fichier 2
    et ensuite en fonction de ce code je vais coller des données qui correspondent au code dans différentes colonnes.
    Je ne sais pas si j'ai été assez clair mais je bloque sur ce choix de select feuille du fichier 2
    Les deux fichiers sont d'ailleurs ouverts.
    Qq peut il m'aider ?
    Merci beaucoup !!!

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Sauf qu'il faut faire un choix de feuille selon le code de l'objet
    c'est quoi le code de l'objet ??? on va dire que c'est le contenu de la cellule A1 Feuil1 du fichier contenant ta macro..

    Nul besoin de sélectionner ou active une feuille pour accéder à ses données ...



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim sh as workSheet '
     
     
    if ThisWorkbook.sheets("Feuil1").range("A1") = "J"
       set sh = Workbooks("fichier 2").sheets("feuille 3") 
    else
       set sh = Workbooks("fichier 2").sheets("feuille 1") 
    end if
     
    'pour changer le contenu de la cellule B3 de la feuille sélectionner :
    sh.range("B3")= Now 'Affiche date en cours en B3...
    'pour afficher le contenu de la cellule B3 de la feuille sélectionner :
    msgbox sh.range("B3")

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Par défaut
    Merci de cette réponse rapide mais une petite précision :

    if ThisWorkbook.range("A1") = "J" veut il dire si A1=J ?


    parce que je voulais dire : si A1 contient J dans son code

    ex si A1= 12345JXXXX alors aller en feuille 3 du fichier 2

    sinon en feuille 1 qui ne contient que les codes 12345PXXX1
    Est ce différent ?

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    j'ai oublié le nom de la feuille je voulais écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.sheets("Feuil1").range("A1")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IF instr(1,ThisWorkbook.sheets("Feuil1").range("A1") ,"J") > 0 Then

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Par défaut
    Merci je comprends un peu mieux, je vais bosser ça avec cette idée !!

    Bonjour,

    J'ai reussi à avancer un peu mais je ne comprends pas pourquoi une date est rajoutée en derniere ligne....

    Quelqu'un peu m'aider ??,

    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ' Copier/Coller Terre du Neutre
            Workbooks("classeur1").Activate
            Sheets("feuil1").Activate
            If Cel1.Offset(0, 4).Value <> "" Then ' On vérifie s'il y a une valeur dans la cellule
            Cel1.Offset(0, 4).Copy
            Workbooks("classeur2.xls").Activate
            Sheets("feuil2").Select
            Cel2.Offset(1, 9).Select
            Selection.PasteSpecial Paste:=xlValues ' Collage Spécial Valeur
            Selection.NumberFormat = "0"
            Cel2.Offset(1, 8) = Mydate
    Pièces jointes en attente de validation Pièces jointes en attente de validation

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par franxy Voir le message
    ...
    J'ai reussi à avancer un peu mais je ne comprends pas pourquoi une date est ...
    et à quoi sert ta dernière ligne de code : ?
    Citation Envoyé par franxy Voir le message
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Cel2.Offset(1, 8) = Mydate



    Sinon tu aurais pu tenir compte de mes remarques et ne pas utiliser Select ! ( ni Activate d'ailleurs...)







    ------------------------------------------------------------------
    Je n'ouvre pas les fichiers Excel en pièce jointes ..( fichiers inutiles dans 99% des cas )

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Par défaut Re
    En fait dans la macro complete du fichier 1je mets deux dates
    pour un critere
    Cel2.Offset(0, 8) = Mydate

    et pour le deuxieme critere

    Cel2.Offset(1, 8) = Mydate

    je n'ai trouvé que cette solution pour mettre une date en ligne +1 mais effectivement cela en mets aussi une en derniere ligne

    Par contre pour les autres conseils, je veux d'abord finaliser meme si c'est pas le top, ensuite je reverrai cela mais je suis trop novice pour comprendre rapidement tout cela dsl

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bon alors j'attends que tu est terminé avant de répondre plus

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Par défaut
    mais cela fonctionne pas trop mal ainsi sauf cette date en derniere ligne

Discussions similaires

  1. [XL-2010] Recherche de donnés selon un critère dans un autre classeur
    Par AFcrv dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/10/2014, 16h06
  2. Réponses: 2
    Dernier message: 27/06/2014, 18h24
  3. Réponses: 2
    Dernier message: 17/02/2014, 11h41
  4. Recherche de valeur dans une feuille et affichage dans une autre
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2007, 09h40
  5. affichage des champs selon critère dans un formulaire
    Par emmablue dans le forum Access
    Réponses: 5
    Dernier message: 31/07/2006, 09h39

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