Fonction recherche et/ou décaler

simon44

XLDnaute Nouveau
Bonjour à tous,

Petite galère au niveau d'une fonction, le contexte : j'entre une date par exemple 12/11/2013 dans une cellule de la feuille "Impression", en fonction de cette date, 5 cellules se mettent à jour automatiquement (dans cette même feuille). Dans ces 5 cellules doivent apparaître les 5 jours de la semaine précédente. Dans la feuille "Exploitation" se trouve une plage de données qui contient toute les dates travaillées.

Donc la finalité c'est de taper une date (Un lundi pour l'exemple) que exel va chercher et retrouver dans ma plage de donnée (dates travaillées), et elle va me faire apparaitre la cellule qui se trouve 5 lignes plus bas (pour le lundi), ou 4 lignes plus bas (pour le mardi) etc

Je souhaite une fonction et non du VBA

Merci

PS : comment joindre mon fichier ? il est volumineux..
 

poulpor78

XLDnaute Junior
Re : Fonction recherche et/ou décaler

Bonjour Simon,

Le mieux en effet est de joindre le fichier (il faut aller en mode avancé).

D'autre part, il est préférable d'enlever la plupart des données et de laisser juste ce qu'il faut pour t'aider. Ainsi, le fichier sera moins volumineux.

poulpor
 

st007

XLDnaute Barbatruc
Re : Fonction recherche et/ou décaler

Bonsoir,

un décaler est sympa pour juste récupérer la date qui se trouve x ligne avant

en impression!D3, tu devrais peut-être placer un menu déroulant en fonction de exploitation!i:i pour éviter de saisir une date qui ne figure pas dans i:i
pour impression!
C18
Code:
=DECALER(INDIRECT("Exploitation!"&ADRESSE(EQUIV($D$3;Dates_travaillées;0);9));-5;)
D18
Code:
=DECALER(INDIRECT("Exploitation!"&ADRESSE(EQUIV($D$3;Dates_travaillées;0);9));-4;)
E18
Code:
=DECALER(INDIRECT("Exploitation!"&ADRESSE(EQUIV($D$3;Dates_travaillées;0);9));-3;)
F18
Code:
=DECALER(INDIRECT("Exploitation!"&ADRESSE(EQUIV($D$3;Dates_travaillées;0);9));-2;)
G18
Code:
=DECALER(INDIRECT("Exploitation!"&ADRESSE(EQUIV($D$3;Dates_travaillées;0);9));-1;)
maintenant, si l'on cherche a compléter juste les jours de la semaine précédente, on trouvera autre chose qui n'aura aucun lien nécessaire avec la feuille exploitation
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Fonction recherche et/ou décaler

Bonjour.

En C18 : =D3-JOURSEM(D3;2)-6
En D18 : =C18+1 (à recopier vers la droite jusqu'à G18)

Quel que soit le jour correspondant à la date saisie en D3 (Lundi, Mardi,...Dimanche), les 5 jours ouvrés de la semaine précédente s'afficheront en C18:G18
:)
 

simon44

XLDnaute Nouveau
Re : Fonction recherche et/ou décaler

Merci victor c'est exactement la bonne formule, même pas besoin d'une grande formule compliqué!

C'est parfait parce que n'importe quel jour de la semaine en D3 affiche obligatoirement les 5 jours de la semaine précédente

sinon j'en profite pour soumettre un autre petit problème cette fois ci sur une macro du même fichier

cette macro sélectionne une plage de données puis la modifie, elle remplace les "." par des "/"
sauf qu'elle inverse les jours et les mois
j'ai ça au début : 05.02.2014
je devrais avoir ça : 05/02/2014
et j'ai ça : 02/05/2014
 

Pièces jointes

  • données.xlsm
    41.7 KB · Affichages: 30
  • données.xlsm
    41.7 KB · Affichages: 30
  • données.xlsm
    41.7 KB · Affichages: 31

Victor21

XLDnaute Barbatruc
Re : Fonction recherche et/ou décaler

Re, simon44

Cette nouvelle question n'a plus rien à voir avec l'intitulé de votre post.
Vous auriez dû ouvrir un nouveau fil : des liens vers des discussions similaires se seraient affichés en bas de page, facilitant votre recherche, et les éventuelles solutions qui vous seront proposées seraient devenues disponibles pour ceux qui viendront plus tard avec la même problématique, en utilisant les mots-clés de votre titre.

Une petite recherche sur le site (La loupe en haut à droite), et j'ai trouvé ici, parmi de nombreux posts traitant le sujet, un code de job75 :) que je vous livre :
VB:
Sub Convertir()
Dim d&, tablo, i&
d = [A65536].End(xlUp).Row
tablo = Application.Transpose(Range("A1:A" & d))
On Error Resume Next 'si toutes les valeurs ne sont pas des dates
For i = 1 To d
tablo(i) = CDbl(CDate(tablo(i)))
Next
With [A1].Resize(d)
.NumberFormat = "dd/mm/yyyy" 'ou autre format Date
.Value = Application.Transpose(tablo)
End With
End Sub
 

Victor21

XLDnaute Barbatruc
Re : Fonction recherche et/ou décaler

Re,

Oubliez la proposition précédente non adaptée à votre cas.
Essayez la conversion (macro enregistrée avec l'enregistreur de macros (données, convertir):
VB:
Sub convertirdate()
Dim d As Long
d = [A65536].End(xlUp).Row
Range("A1:A" & d).TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(0, 4), TrailingMinusNumbers:=True
End Sub
 
Dernière édition:

simon44

XLDnaute Nouveau
Re : Fonction recherche et/ou décaler

Non ça fonctionne pas ..

En faisant une macro à la volé j'ai ca : (avec remplacer)

Code:
Columns("A:A").Select
    Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Mais toujours le même souçis
 

Discussions similaires

Réponses
5
Affichages
305
Réponses
2
Affichages
154

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87