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 :

Copie dernier élément de chaque type, sur la feuille suivante


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut Copie dernier élément de chaque type, sur la feuille suivante
    Bonjour a tous, encore une belle journée qui s'annonce.

    Bon maintenant revenons au sujet de départ.
    J'ai maintenant une macro qui crée des pages supplémentaires, et qui copie dessus les éléments correspondants aux tranches correspondantes.

    Les tranches, sont en réalitée, des plages horaires de 2 minutes.

    Afin de pouvoir réaliser mes calculs, il faudrait que j'ajoute des variables sur chacune de mes feuilles suppplémentaires (Attender, je vous explique).

    Ces variables sont en réalitées les derniers avions de chaques pages précédentes, qu'il faut copier sur la suivante, à la suite des éléments correspondant au tranche.

    En exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TBS_EW	FS	0,697395833	85	1
    TBS_EW	FS	0,697453704	75	1
    TBS_EW	FS	0,697511574	73	1
    TBS_EW	FS	0,697569444	61	1
    TBS_EW	FS	0,697743056	55	1
    TBS_EWC	FS	0,697511574	85	1
    TBS_EWC	FS	0,697685185	47	1
    TBS_EWC	FS	0,697743056	49	1
    XF4	FS	0,697916667	300	1
    XF4	FS	0,698148148	315	1
    ma feuille 4, tranche 1, la première feuille, qui va me servir ici de source de départ.

    Voila les données qu'il faut récupérer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TBS_EW	FS	0,697743056	55	1
    TBS_EWC	FS	0,697743056	49	1
    XF4	FS	0,698148148	315	1
    les dernièrés caractéristiques de chaques avions.

    et les copier en feuille5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    AIRONLY	FS	0,698668981	315	2
    AIRONLY	FS	0,699305556	316	2
    EFL41	FS	0,698611111	319	2
    EFL41	FS	0,698668981	360	2
    TBS_EW	FS	0,698611111	40	2
    TBS_EW	FS	0,698668981	57	2
    TBS_EWC	FS	0,698611111	26	2
    TBS_EWC	FS	0,698668981	70	2
    XF4	FS	0,699305556	300	2
    TBS_EW	FS	0,697743056	55	1
    TBS_EWC	FS	0,697743056	49	1
    XF4	FS	0,698148148	315	1
    Voila mon problème, ceci jusqqu'a la valeur NbTr

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Voila les données qu'il faut récupérer

    Code :
    TBS_EW FS 0,697743056 55 1
    TBS_EWC FS 0,697743056 49 1
    XF4 FS 0,698148148 315 1
    Comment tu le sais que c'est ça qu'il faut récupérer ? c'est par rapport à ta tranche de 2 minutes la ? elle apparait ou ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Citation:
    Voila les données qu'il faut récupérer
     
    Code :
    TBS_EW FS 0,697743056 55 1
    TBS_EWC FS 0,697743056 49 1
    XF4 FS 0,698148148 315 1
    Comment je sais, car c'est la dernière ligne pour chaque nom d'avion, c'est au simple que sa, sur le papier bien sur.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut
    J'ai réussi, a obtenir se que je veu, par contre, maintenant j'ai de gros problème pour la mise en place sur les feuilles (a la suite des valeurs) et pour la boucle qui me permet de calculer ses memes valeurs mais sur les autre feuilles

    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
    Dim I         As Long
        Dim J         As Long
        Dim Avion     As String
        Dim sector     As String
        Dim Tim     As Integer
        Dim Head    As Integer
      ' balayage des lignes et comptage des avions concernés
      J = 0
      I = 2
      Sheets("Feuil2").Cells.ClearContents
      Avion = Range(Cells(I, 1), Cells(I, 1)).Value
      sector = Range(Cells(I, 2), Cells(I, 2)).Value
      Tim = Range(Cells(I, 3), Cells(I, 3)).Value
      Head = Range(Cells(I, 4), Cells(I, 4)).Value
      Do While Cells(I, 1).Value <> ""
        If Cells(I, 1).Value <> Avion Then
            J = J + 1
            Sheets("Feuil2").Cells(J, 1).Value = Avion
            Sheets("Feuil2").Cells(J, 2).Value = sector
            Sheets("Feuil2").Cells(J, 3).Value = Tim
            Sheets("Feuil2").Cells(J, 4).Value = Head
          Avion = Cells(I, 1).Value
          sector = Cells(I, 2).Value
          Tim = Cells(I, 3).Value
          Head = Cells(I, 4).Value
        End If
        I = I + 1
      Loop
        J = J + 1
            Sheets("Feuil2").Cells(J, 1).Value = Avion
            Sheets("Feuil2").Cells(J, 2).Value = sector
            Sheets("Feuil2").Cells(J, 3).Value = Tim
            Sheets("Feuil2").Cells(J, 4).Value = Head
    Bon la les résultats se font en feuille2.
    Problème les valeurs de temps ne s'affiche pas 0:00:00 ou 1

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Quel est ton problème ?
    J'ai compris l'histoire du dernier avion (tu récupères, pour chaque avion la dernière ligne dans laquelle l'avion apparaît)
    Mais je n'ai pas vu d'explication sur le problème

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    ma macro me donne la ligne initial et non pas la dernière ligne ou apparait l'avion
    Ben oui !
    Dans ces lignes, tu stockes les données du premier avion différent rencontré. Or tu veux la dernière ligne de cet avion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        If Cells(I, 1).Value <> Avion Then
            J = J + 1
            Sheets("Feuil2").Cells(J, 1).Value = Avion
            Sheets("Feuil2").Cells(J, 2).Value = sector
            Sheets("Feuil2").Cells(J, 3).Value = Tim
            Sheets("Feuil2").Cells(J, 4).Value = Head
          Avion = Cells(I, 1).Value
          sector = Cells(I, 2).Value
          Tim = Cells(I, 3).Value
          Head = Cells(I, 4).Value
        End If
    Au moment ou l'avion change, tu dois récupérer les données de la ligne précédente et mémoriser le nom de l'avion de la ligne courante
    Si tu ne comprends pas, tu dis

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Par défaut
    Alors la, non je ne te suis plus du tout.

    Le nombre d'avion type,non je ne le connais pas du tout.
    Et sinon ma macro fonctionne, mais elle devrais me mettre la dernière valeur de I, et non pas la première.

    I c'est l'avion, tand que I=I+1 c'est qu'on a le meme avion, sinon J+1
    et on passe au prochain avion

    Moi ce que je veu c'est cette valeur de I, la dernière

    Sinon, autre chose pour la mise en place de ma boucle, et oui pour le faire sur tout mes pages.
    Si je copie, il va m'effacer mes données que j'avais copié avant, comment faire pour copier à la suite, car je copie à partir de J, faut-il dire que J= dernière valeur non nul
    et je copie en J+1?


  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu réponds à qui ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Déterminer le dernier élément d'un type d'un registre
    Par Malek59 dans le forum Excel
    Réponses: 5
    Dernier message: 14/09/2014, 00h42
  2. Dernier enregistrement de chaque type de device
    Par pikamo dans le forum Langage SQL
    Réponses: 14
    Dernier message: 11/09/2014, 14h06
  3. Recopier les éléments d'un vecteur sur une feuille excel
    Par bsangoku dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/05/2013, 16h32
  4. [XL-2007] copier chaque colonne sur une feuille
    Par pael013 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/09/2009, 15h00
  5. faire une copie d'une plage de cellules sur x feuilles
    Par La Zélie dans le forum Excel
    Réponses: 4
    Dernier message: 11/06/2008, 08h55

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