Si colonne contient @

Bonjour a tous...

J'ai un classeur avec deux feuilles

Feuille 1 des donnees parmis lesquelles des cellules avec ce format de donnees:

@52001900779064091509406111134398

@52001900779063091509406111134307

@52001900779064091509406111134397

A coté pour chacun de ces codes une cellule avec heure, minutes, secondes

Feuille 2

Les memes données que feuille 1 pas forcement dans le meme ordre et des temps diffferents

Le but ?

Je veux qu en feuille 3 excel repère le @... de la feuille 1 qui correspond au @... de la feuille 2 et qu il calcule le temps ecoulé entre les deux.

Quelqu un peut il m aider ?

Sinon si ca peut se faire plus simplement je sais pas trop...

Excel repere toutes les cellules d'une colonne qui contiennent un @

les copie et colle dans une feuille 3

et copie colle a coté les temps correspondants

Apres je ferai la soustraction des temps

Merci beaucoup

Bonjour,

Un fichier joint aurait été mieux pour cerner le problème. Ci-joint un fichier avec ce que j'ai compris. Teste le et reviens nous voir avec plus de précisions.

Fichier Joint

Merc de ta reponse,

Pour faire plus simple voici un fichier joint

https://www.excel-pratique.com/~files/doc/uJANNtime_between_fluidics_and_scan.xls

En fait c'est pas aussi simple que ca mais sans doute j'avais voulu simplifier les choses

Onglet Fluidics:

- colonne B: @52001900779064091509406111134398

Et

- Colonne F le temps qui correspond

Onglet scan:

De toutes ces infos seules 2 m'interessent:

- colonne B: @52001900779064091509406111134398

et

- Le temps qu il y a dessous

Les autres infos ne m'intéressent pas

Ensuite chacune de ces infos est copiée collé dans onglet "calculs"

Et on fait la soustraction des temps

La question ? est ce que excel peut aller chercher et copier coller une info parmi d autres qui contient le @ dans une colonne ?

Comment faire comprendre a excel qu il doit faire la soustraction de temps QUE SI les 2 codes barres en @ correspondent bien sachant qu ils seront pas forcement dans le meme ordre ....

Je maitrise pas assez pour realiser un truc pareil

Merci pour votre aide si vous pouvez ( c'est pour la recherche sur des maladies...)

Re,

Regarde sur le fichier joint. La macro est dans la module. Faitre ALT + F11 pour voir le code de cette macro. La différence de temps est calculée dans la colonne E.

Fichier Joint

PS : Je ne suis pas un spécialiste en VBA. Je me concentre plutôt sur les formules. En attendant d'autres solutions, essaye ce code. Tu vas avoir sûrement d'autres propositions. Bon courage.

C'est pas mal du tout mais il y a un petit detail qui colle pas

La soustraction de temps doit s'effectuer QUE SI les deux codes barres dans la feuille fluidics et dans la feuille scan correspondent EXACTEMENT.

En gros la macro de la feuille fluidics va chercher un @52154252 dans la colonne B, regarde si elle retrouve le MEME code barre @52154252 dans la colonne B de la feuille scan et si ces deux codes correspondent elle fait la soustraction des temps qui correspondent a chaque code barre.

Si ils correspondent pas elle fait rien ou met un blanc peu importe

Le soucis c'est que les codes barres n apparaissent pas forcement dans le même ordre entre fluidics et scan

si la macro n'est pas trop complexe a réaliser... ca nous rendrait un grand service et un gain de temps enorme

Merci

Re,

Je ne sais pas ce que tu veux exactement. A la limite, remplis la feuille "calculs" manuellement par le résultat que tu attends de cet automatisme et retourne ce fichier. Comme ça, on verra plus clair.

Bonjour le forum,

Une petite macro à l'arrache à mettre à la place de celle de Raja.

Dis nous si c'est à peu près ça que tu veux Manu ?

Sub copie()
Dim Cel As Range
Dim Lig As Byte
Lig = 1

Sheets("calculs").Cells.Clear
Sheets("Fluidics").Select
For Each Cel In Range("B1:B" & Range("A65536").End(xlUp).Row)
If Left(Cel, 1) = "@" Then
Cel.Copy Destination:=Sheets("calculs").Range("A" & Lig)
Cel.Offset(-3, 4).Copy Destination:=Sheets("calculs").Range("B" & Lig)
Sheets("calculs").Range("C" & Lig).FormulaR1C1 = "=INDIRECT(""Scan!$B""&MATCH(RC1,Scan!C2,0)+1)"
Sheets("calculs").Range("D" & Lig).FormulaR1C1 = "=RC[-1]-RC[-2]"
Lig = Lig + 1
End If
Next Cel
Sheets("calculs").Range("B1:D" & Lig - 1).NumberFormat = "hh:mm:ss"

End Sub

Edit : en supposant que les 2 horaires soient toujours dans la même journée, et que le décalage entre le barcode et l'horaire soir toujours le même sur la feuille Fluidics (-3 lignes, +4 colonnes)

Pour une macro faite à "l'arrach".... je reve de pouvoir programmer comme ca des petites macros

Merci mille fois a RAJA et à toi Sylvain

Hello suite a ma macro un petit bug est apparu

https://www.excel-pratique.com/~files/doc/kgZc6time_between_fluidics_and_scanlight2.xls

Ca concerne les heures

tant qu on est avant 12h59mm59s ca va

Des qu on passe a 13h00mm00s alors ca se transforme en 01:00:00 et la soustraction ne se fait plus

Quelqu un aurait une solution ?

Merci

Bonjour Manu,

Dans la macro, remplace la ligne

Sheets("calculs").Range("B1:D" & Lig - 1).NumberFormat = "hh:mm:ss"

par

Sheets("calculs").Range("B1:D" & Lig - 1).NumberFormat = "[hh]:mm:ss"

Et mets le même format personnalisé dans tes cellules d'heures des feuilles Fluidics et Scan

Toutefois, il me semble que le problème devrait être pour les horaires supérieurs à 25:00 et non pas à 13:00

Rechercher des sujets similaires à "colonne contient"