Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Synthèse Tableau

  • Initiateur de la discussion Initiateur de la discussion simvc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

simvc

XLDnaute Junior
Re-Bonjour,

Je suis come soeur Anne mais j'espère qu'un bon petit génie me trouvera la solution!!!!

La macro utilisée en feuille 1 ne donne pas les résultats escomptés (voi annexe):
1. En Feuille 1 j'ai 21 destinations.

2. En Feuille 2 je devrais retrouver SEULEMENT pour chacune destination PEAK et OFF PEAK et JAMAIS WEEKEND

3. Je dois également retrouver les destinations pour lesquelles PEAK et OFF PEAK ne sont pas indiqués la les valeurs PEAK et OFF PEAK qui doivent apparaître en feuille 2 seront bien entendu identiques pour cette destination

4. Les résultats générés par cette macro ne respectent pas ce que je voudrais obtenir.

Quelqu'un parmi vous pourrait-il m'aider à revoir cette macro afin que je puisse obtenir cette solution; à savoir j'ai 19000 lignes à traiter.

Merci d'avance pour tout.

Simvc
 

Pièces jointes

Dernière édition:
Re : Synthèse Tableau

Bonjour Simvc 🙂,
Plutôt que de corriger un code qui n'est pas dans mon mode de raisonnement, j'ai préféré en construire un nouveau.
Sous réserve que toute la structure de ton fichier est comme ton échantillon (3 tarifs si Off Speak, 1 seul si autre) et que tes données sont triées en colonne 1, puis 2, ce code
Code:
Sub TestJNP()
Dim I As Integer
I = 1
While Cells(I, 1) <> ""
If Cells(I, 1) = Cells(I + 1, 1) And Cells(I, 1) = Cells(I + 2, 1) Then
    Cells(I, 4) = Cells(I, 3)
    Cells(I, 2) = Replace(Cells(I, 2), " Off Peak", "")
    Cells(I, 3) = Cells(I + 1, 3)
    Rows(I + 1 & ":" & I + 2).Delete
Else
    Cells(I, 4) = Cells(I, 3)
End If
I = I + 1
Wend
End Sub
devrait fonctionner. Je ne vois pas l'intérêt de copier en feuille 2, autant traiter la feuille 1. Il te reste la mise en forme à faire.
Bon courage 😎
Ajout : Pour avoir plus de réponses, joint en version 98-2003.
 
Re : Synthèse Tableau

Bonjour et merci pour cette première approche, cependant dans certains cas je n'aurai que seulement peak et off peak pour un même code pays et PAS weekend, j'ai essayé de le faire mais cela ne fonctionne pas, auriez-vous la solution ad-hoc pour cela, merci d'avance.
 
Re : Synthèse Tableau

Re 🙂,
Code:
Sub TestJNP()
Application.ScreenUpdating = False
Dim I As Integer
I = 1
While Cells(I, 1) <> ""
If Cells(I, 1) = Cells(I + 1, 1) And Cells(I, 1) = Cells(I + 2, 1) Then
    Cells(I, 4) = Cells(I, 3)
    Cells(I, 2) = Replace(Cells(I, 2), " Off Peak", "")
    Cells(I, 3) = Cells(I + 1, 3)
    Rows(I + 1 & ":" & I + 2).Delete
Else
    If Cells(I, 1) = Cells(I + 1, 1) Then
        Cells(I, 4) = Cells(I, 3)
        Cells(I, 2) = Replace(Cells(I, 2), " Off Peak", "")
        Cells(I, 3) = Cells(I + 1, 3)
        Rows(I + 1 & ":" & I + 1).Delete
    Else
        Cells(I, 4) = Cells(I, 3)
    End If
End If
I = I + 1
Wend
Application.ScreenUpdating = True
End Sub
devrait le faire puis qu'il teste si 3 lignes égales, sinon si 2 lignes égales, sinon 1 seule ligne. Par contre le traitement va être plus long. C'est pourquoi j'ai arrêté l'affichage en début de macro et je le remet à la fin.
Bonne journée 😎
 
Re : Synthèse Tableau

Bonjour, Mon problème qui vient de surgir est que maintenant j'ai des lignes égales qui sont à la suite l'une de l'autre jusqu'à 20 x Peak, Off Peak et weekend, comment pourriez-vous m'aider à changer le code qui ne teste que jusqu'à trois lignes égales, merci d'avance.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…