Bonjour, je suis nouveau sur le forum et débutant en VBA.
Je vais essayer de vous exposer clairement mon souci.
Je cherche à partir de la valeur de la cellule active (heure de début) et de celle sur sa droite (heure de fin) de la feuille "MASTER", à retrouver sur une autre feuille (feuille "SHIFTS") une ligne ayant ces deux mêmes valeurs pour pouvoir par la suite récupérer un morceau de cette ligne et la "coller" sur la première feuille.
Etant des heures au format date (avec date + heure), la fonction FIND ne fonctionnait pas. J'ai du coup converti sur la deuxième feuilles ("SHIFTS") les dates/heures au format numérique puis concaténer sur la colonne B les deux valeurs.
J'ai du coup réussi à récupérer l'adresse correspondante à ma recherche grâce à FIND et VALUE2.
Mon souci est que je n'arrive pas à utiliser cette "adresse" pour l'utiliser sur les étapes d'après. J'obtiens un message d'erreur dès que j'essaye de faire un resize ou de l'utiliser en tant que range.
Mon but une fois l'adresse trouvée et de "décaler" de 6 cellules vers la droite (ça j'y arrive) puis de resize pour copier les valeurs de cette ligne de la colonne H à la colonne CE.
Voici mon code :
Mon fichier :
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 Sub FINDligne() Dim shiftDEB As Range Dim shiftFIN As Range Dim searchshiftDEB As Variant Dim searchSHIFT As Variant Dim ligne As Variant searchshiftDEB = ActiveCell.Value2 searchshiftFIN = ActiveCell.Offset(0, 1).Value2 searchSHIFT = searchshiftDEB & " " & searchshiftFIN Set searchSHIFT = Worksheets("SHIFTS").Range("B1:B500").Find(What:=searchSHIFT, LookIn:=xlValues, Lookat:=xlWhole, SearchOrder:=xlColumns) ligne = searchSHIFT.Offset(0, 6).Address MsgBox ligne End Sub
SEMAINE XX-2020_MASTER.xlsb.xlsm
Merci d'avance pour votre aide !
Oncle Sid
Partager