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 :

demande d'aide VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Par défaut demande d'aide VBA
    Bonsoir,
    Cela fait 2 jours que j'essai de trouver une solution.

    EN fait, j'ai un fichier excel avec deux feuilles
    feuille1 3 colonnes nom / taille/ date entree
    feuille2 3 colonnes nom / taille / date sortie
    le probleme c'est que je peux avoir plusieurs nom pareils
    ce que je voudrai faire c'est placer dans la feuille 1 la date sortie qui correspond au nom et taille, sachant que je veux lier la date entree a la plus proche date sortie qui lui correspond.
    j'ai classé ma feuille 2 par odre chrono et si la pièce n'est pas dispo dans la feuille 2 il me met la ligne correspondante en feuille 1 en rouge
    une solution?

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut et bienvenu
    La solution simple sans se casser trop la tête serait de simplement rajouter un colonne avec une formule style
    Si A = les nom
    B = la taille
    Pour la ligne 2 en colonne D
    Ainsi au lieu de faire la recherche sur la colonne A tu fais ta recherche sur la colonne D.
    Tu caches ta colonne D pour ne pas que ça fasse vilain et le tour est joué.
    Maintenant, il existe surement une solution plus propre et je parierais que le VBA n'est pas nécessaire.
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Par défaut
    Merci pour la réponse ,mais en fait il me faut une macro.
    je réexplique le pb

    ce que je veux, c'est mettre sur la feuille 3 les données en sortie. donc j'aurai le nom; quantité date entrée et date sortie (date sortie du nom doit etre la plus proche des dates de sortie si il y a des noms pareils)

    merci pour l'aide

    exple de ce que je veux faire

    feuil1
    nom taille date entree
    a 1 18/03/2010 05:10
    a 1 21/03/2010 05:10
    b 2 21/03/2010 05:10
    c 3 21/03/2010 05:10
    feuil2
    nom taille date sortie
    a 1 19/03/2010 05:10
    a 1 22/03/2010 05:10
    c 3 22/03/2010 05:10

    feuil3 je veux croiser 1ere date entree avec premiere date sortie selon taille et nom

    nom taille date entree datesortie
    a 1 18/03/2010 05:10 19/03/2010 05:10
    a 1 21/03/2010 05:10 22/03/2010 05:10
    c 3 21/03/2010 05:10 22/03/2010 05:10

    le nom b par exple n'est pas sorti on le met sur la feuil3 mais la ligne sera en rouge c optionnel pour les pros )

    c mieux expliqué je pense
    merci pour tout c vmt urgent

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Les dates d'entrée/sortie sont elles inscrites au file de l'eau?
    Dans ton exemple on a
    a
    a
    b
    c

    a ce a correspond forcement au 1er a de l'autre tableau?
    a
    c

    Une autre façon de poser la question serait de dire, les entrée sortie sont elles classées par date?

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Par défaut
    oui effectivement a renvoie au nom dans la feuil1et 2
    pour les feuil1et2 les dates entree/sortie sont classées par ordre chronologique

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub CommandButton1_Click()
    Dim F1 As Worksheet, F2 As Worksheet, F3 As Worksheet
    Dim TheCel As Range
    Dim Tab_F2
    Dim xTab As Long
    Dim KeyNT As String
     
    'init
    Set F1 = Sheets("Feuil1")
    Set F2 = Sheets("Feuil2")
    Set F3 = Sheets("Feuil3")
     
     
    'recopie le contenu de la feuil1 dans la feuil3
    F1.UsedRange.Copy F3.[A1]
     
    'On consigne les valeur de la feuil2 dans un tableau
    Tab_F2 = F2.UsedRange
     
     
    'On complete le tableau Feuil3
    With F3
        For Each TheCel In .Range("A2", .Cells(Rows.Count, "A").End(xlUp))
            KeyNT = TheCel & TheCel.Offset(0, 1)
            .Range(TheCel, TheCel.Offset(0, 3)).Font.ColorIndex = 0
            'on recherche dans le tableauF2
            For xTab = 2 To UBound(Tab_F2)
                If (Tab_F2(xTab, 1) & Tab_F2(xTab, 2) = KeyNT) And (CDate(Tab_F2(xTab, 3)) >= TheCel.Offset(0, 2)) Then
                    TheCel.Offset(0, 3) = CDate(Tab_F2(xTab, 3))
                    GoTo suite
                End If
            Next
            'Si on arrive ici la personne n'est pas sortie
            .Range(TheCel, TheCel.Offset(0, 3)).Font.ColorIndex = 3
    suite:
        Next
    End With
     
    End Sub
    Essai comme ça, a adapter en, fonction de la structure de ton tableau.
    J'ai fais le code en Fct° de ce que tu as donné comme indication d'organisation des infos

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  7. #7
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Par défaut
    yeeeeeeees merci beaucoup tu me sauves la vie il y a juste un souci il me met sur la feuille 3 le nom des colonnes sauf date sortie c normal
    je m'explique
    j'ai ça
    nom taille date entree _
    a 1 12/02/2010 17/02/2010 la dernière colonne n'est pas nommée

    merci bcp troooop fort

    encore une dernière chose
    la feuille ne se met pas à jour automatiquement quand j'ajoute des données dans la feuil1 et feuil2
    je voudrai qu'il s'actualise automatiquement c possible ??

  8. #8
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Rajoute la ligne qui suit le code existant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'recopie le contenu de la feuil1 dans la feuil3
    F1.UsedRange.Copy F3.[A1]
    F3.[D1]="DateSortie"
    A++
    Qwaz

    Salut
    Je n'avais pas vu ton 2ème message.
    Humm pour une actualisation en permanence, je dirais qu'il faut rajouter dans l'évènement Activate de ta feuil3, un appel a la procédure que je t'ai donné.
    comme ça a chaque fois que tu iras sur la feuille3le code s'exécutera et rajoutera les nouvelles entrées.
    Dans ce cas il serait peut etre bien de faire un raz des valeur contenu dans le tableau feuil3.
    Pour le raz, rajoutes ça au début de la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'recopie le contenu de la feuil1 dans la feuil3
    F3.UsedRange.ClearContents
    F1.UsedRange.Copy F3.[A1]
    F3.[D1] = "DateSortie"
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  9. #9
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Par défaut
    tout simplement fort
    tout marche nickel sauf l'actualisation le fichier ne se met pas à jour automatiquement
    merci

  10. #10
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    As tu réalisé cela?
    Citation Envoyé par Qwazerty
    Humm pour une actualisation en permanence, je dirais qu'il faut rajouter dans l'évènement Activate de ta feuil3, un appel a la procédure que je t'ai donné.
    comme ça a chaque fois que tu iras sur la feuille3le code s'exécutera et rajoutera les nouvelles entrées.
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  11. #11
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Par défaut
    ca n'a pas l'air de marcher

  12. #12
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Comment procèdes tu?

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  13. #13
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Par défaut
    bah j'ai mis exactement ton cote rien de plus

    j'ai mis mot par mot ton code

  14. #14
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Montre moi la partie activate de ta worksheet.

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  15. #15
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Par défaut
    voila ce que g mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Private Sub CommandButton1_Click()
    Dim F1 As Worksheet, F2 As Worksheet, F3 As Worksheet
    Dim TheCel As Range
    Dim Tab_F2
    Dim xTab As Long
    Dim KeyNT As String
     
    'init
    Set F1 = Sheets("input data")
    Set F2 = Sheets("sortie data")
    Set F3 = Sheets("résultat")
     
     
    'recopie le contenu de la feuil1 dans la feuil3
    F3.UsedRange.ClearContents
    F1.UsedRange.Copy F3.[A1]
    F3.[d1] = "date sortie"
    'On consigne les valeur de la feuil2 dans un tableau
    Tab_F2 = F2.UsedRange
     
     
    'On complete le tableau Feuil3
    With F3
        For Each TheCel In .Range("A2", .Cells(Rows.Count, "A").End(xlUp))
            KeyNT = TheCel & TheCel.Offset(0, 1)
            .Range(TheCel, TheCel.Offset(0, 3)).Font.ColorIndex = 0
            'on recherche dans le tableauF2
            For xTab = 2 To UBound(Tab_F2)
                If (Tab_F2(xTab, 1) & Tab_F2(xTab, 2) = KeyNT) And (CDate(Tab_F2(xTab, 3)) >= TheCel.Offset(0, 2)) Then
                    TheCel.Offset(0, 3) = CDate(Tab_F2(xTab, 3))
                    GoTo suite
                End If
            Next
            'Si on arrive ici la personne n'est pas sortie
            .Range(TheCel, TheCel.Offset(0, 3)).Font.ColorIndex = 3
    suite:
        Next
    End With
     
    End Sub

  16. #16
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Oui ca ok c'est la code su bouton que je t'ai donné, que tu utilise visiblement comme une simple procedure, mais ca n'a pas d'importance tant que tu ne rajoutes pas un bouton sur la feuille.

    Pour eviter tout probleme remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub CommandButton1_Click()
    par
    Cela fait 2 jours que j'essai de trouver une solution.
    Si tel est le cas, tu as bien du lire quelque tutoriel ? fais quelque recherche sur internet ? non? a aucun moment tu n'es tombé sur les différents évènements liés a une feuille ? Open, Activate, ...
    Par curiosité avant de te donner une solution a ce petit problème, montre moi voir le fruit de ton travail durant ces 2 jours.
    a++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  17. #17
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 23
    Par défaut
    bonjour,
    tout d'abord je te remercie pour ton aide de la dernière fois.
    la macro marche mais j'ai des petits soucis quand je l'ai modifié. o fait g des critères supplémentaires à ajouter
    si tu te rappelles ct une macro pour mettre danns une feuille 3 les données communes entre la feuil1 et feuil2 selon nom taille date entree et sortie
    critère 1: date entree <= date sortie pour même nom
    critère 2 : taille feuille 1>= taille feuille 2 pour même nom
    si taille marquée dans les feuille 1 et 2 sont diffenretes, on marquera dans la feuille 3 les deux vzleurs de taille
    je n'arrive pas à faire le critère 2 et marquer les deux valeurs dans la feuille 3
    sinon ce que j'ai ajouté c la differnce entre les dates dans ma feuille 3 , ceci marche bien sauf que j'ai un prob je ne veux pas qu'il me calcule la differnce si g pas de date sortie et ne pas afficher des 0j dans les lignes où pas de données.
    j'ai vmt besoin de votre aide c urgent
    peux tu m'aider je t'envoie le prog que j'ai pour l'instant
    merci

Discussions similaires

  1. Demande d'aide VBA
    Par minironaldo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2013, 23h48
  2. [XL-2003] Demande d'aide VBA Excel
    Par popo2009 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/02/2010, 19h38
  3. demande d'aide sur VBA
    Par aralth dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/07/2007, 05h45
  4. [VBA] Excell : demande d'aide pour une macro
    Par Fealendril dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/01/2006, 16h28

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