fusionner 2 onglets en conservant date et heure

dfresh

XLDnaute Nouveau
Bonjour,
je souhaiterais fusionner deux onglets en conservant l'ordre chronologique (date et heure). En fait je voudrais faire ressortir d'une couleur les données P1 en les incorporant dans P2 ou un nouvel onglet chronologiquement. Est ce possible simplement ou faut il créer une macro?
Cordialement
 

Pièces jointes

  • Marche.xlsx
    129.2 KB · Affichages: 84

job75

XLDnaute Barbatruc
Re : fusionner 2 onglets en conservant date et heure

Bonjour dfresh,

A la main ce n'est pas très dificile :

- sélectionner les données de P1 par Alt+F5 => Cellules => Constantes

- colorer la sélection comme on veut

- clic droit => Copier

- sur P2 sélectionner A1 et touches Ctrl+<flèche Bas> => A2981 => sélectionner A2982

- clic droit => Coller

- sélectionner les colonnes A: D => menu Données => Trier sur colonne A [Edit] et colonne B

S'il fallait faire tout ça très souvent, une macro serait utile, autrement non.

A+
 
Dernière édition:

dfresh

XLDnaute Nouveau
Re : fusionner 2 onglets en conservant date et heure

Salut,
merci je vais essayer ça demain en retournant au boulot. Par contre j'ai beaucoup plus de données que dans le fichier je l'ai allégé pour le forum et je dois le faire sur 28 fichiers différents. Si quelqu'un a une macro je suis preneur.
Cordialement.
 

job75

XLDnaute Barbatruc
Re : fusionner 2 onglets en conservant date et heure

Re,

Cette petite macro réalise toutes les opérations décrites au post #2 :

Code:
Sub Fusion()
Dim P1 As Worksheet, P2 As Worksheet
Set P1 = ActiveWorkbook.Sheets("P1")
Set P2 = ActiveWorkbook.Sheets("P2")
With P1.UsedRange
  .Interior.ColorIndex = 6 'couleur jaune
  .Copy P2.[A65536].End(xlUp)(2)
End With
P2.Cells.Sort P2.[A1], xlAscending, P2.[B1], , xlAscending, Header:=xlGuess
Application.DisplayAlerts = False 'évite le message d'alerte
P1.Delete 'suppression de la feuille, facultatif
End Sub
La macro est dans Module1 du classeur joint (Alt+F11).

Elle s'applique au classeur actif (utiliser le raccourci clavier Ctrl+A).

On peut donc l'appliquer successivement aux 28 classeurs, à condition que les 2 feuilles concernées se nomment toujours P1 et P2.

A+
 

Pièces jointes

  • Marche(1).zip
    93.2 KB · Affichages: 49
Dernière édition:

dfresh

XLDnaute Nouveau
Re : fusionner 2 onglets en conservant date et heure

Je remercie job75, grâce à lui j'ai économisé beaucoup de temps. Par contre est ce quelqu'un peut me dire s'il est possible de tirer une formule avec un saut de cellule. Je voudrais soustaire les heures de marche (valeur 1) moins les heures corrspondant à l'arrêt (0). je pense que cela est assez simple mais je ne maitrise pas bien excel.
 

Pièces jointes

  • Marche(1).xls
    285.5 KB · Affichages: 59
  • Marche(1).xls
    285.5 KB · Affichages: 53
  • Marche(1).xls
    285.5 KB · Affichages: 61

job75

XLDnaute Barbatruc
Re : fusionner 2 onglets en conservant date et heure

Re,

Voyez la feuille Calcul et la formule en C6.

Je vous laisse vérifier, je n'ai plus le temps.

Fichier (2)

A+
 

Pièces jointes

  • Marche(2).xls
    290.5 KB · Affichages: 61

job75

XLDnaute Barbatruc
Re : fusionner 2 onglets en conservant date et heure

Bonjour dfresh, le forum,

La non-alternance des 0 et 1 a lieu 12 fois.

Mais il y a au maximum deux 0 ou deux 1 qui se suivent.

Alors cette formule en C6 doit donner un résultat correct :

Code:
=SOMMEPROD((INDEX(Tableau;0;3)=1)*(DECALER(INDEX(Tableau;0;3);1;)=0)*(DECALER(INDEX(Tableau;0;1);1;)+DECALER(INDEX(Tableau;0;2);1;)-INDEX(Tableau;0;1)-INDEX(Tableau;0;2))+(INDEX(Tableau;0;3)=1)*(DECALER(INDEX(Tableau;0;3);1;)=1)*(DECALER(INDEX(Tableau;0;1);2;)+DECALER(INDEX(Tableau;0;2);2;)-INDEX(Tableau;0;1)-INDEX(Tableau;0;2)))
Fichier (3).

A+
 

Pièces jointes

  • Marche(3).xls
    291 KB · Affichages: 52

job75

XLDnaute Barbatruc
Re : fusionner 2 onglets en conservant date et heure

Re,

Sans doute plus lisible si l'on définit les noms COL1 COL2 COL3 :

Code:
=SOMMEPROD((COL3=1)*(DECALER(COL3;1;)=0)*(DECALER(COL1;1;)+DECALER(COL2;1;)-COL1-COL2)+(COL3=1)*(DECALER(COL3;1;)=1)*(DECALER(COL1;2;)+DECALER(COL2;2;)-COL1-COL2))
Fichier (3bis).

A+
 

Pièces jointes

  • Marche(3bis).xls
    291 KB · Affichages: 56
Dernière édition:

dfresh

XLDnaute Nouveau
Re : fusionner 2 onglets en conservant date et heure

Re,
merci mais désolé je dois mettre mal exprimé, je ne veux pas la somme total du fonctionnement mais seulement toutes les différences toutes les 2 lignes entre l'heure de marche et l'heure d'arrêt afin de voir le temps d'arrêt maximum.
Cordialement
 

job75

XLDnaute Barbatruc
Re : fusionner 2 onglets en conservant date et heure

Re,

De toute façon je me suis rendu compte (par VBA) que les résultats des 2 formules précédentes étaient faux.

En effet elles traitent le 2ème 1... Donc pas de regret.

En fait ce que vous voulez faire est simple, formule en E2 :

Code:
=SI(ET(C1=0;C2=1);A2+B2-A1-B1;"")
La copier vers le bas peut être facilité par cette macro lancée par Ctrl+F :

Code:
Sub Formule() 'raccourci clavier Ctrl+F
Range("E2:E" & [A65536].End(xlUp).Row).FormulaR1C1 = _
"=IF(AND(R[-1]C3=0,RC3=1),RC1+RC2-R[-1]C1-R[-1]C2,"""")"
End Sub
Fichier (4).

Edit : en toute logique il faudrait tenir compte des durées entre deux 0 consécutifs.

Mais sur le fichier, les 6 fois où ça se produit, ces durées sont de 1 ou 2 secondes.

J'indique quand même la formule pour en tenir compte :

Code:
=SI(ET(C1=0;C2=1);N(E1)+A2+B2-A1-B1;SI(C1=0;A2+B2-A1-B1;""))
A+
 

Pièces jointes

  • Marche(4).zip
    72.7 KB · Affichages: 36
Dernière édition:

Discussions similaires

Réponses
15
Affichages
1 K
Réponses
4
Affichages
804

Statistiques des forums

Discussions
312 572
Messages
2 089 819
Membres
104 284
dernier inscrit
Yohan90