Utilisation des fonctions Find et Offset

Bonjour, j'ai besoin d'aide pour coder une macro en utilisant les fonctions Find et Offset.

Je cherche à trouver la cellule contenant une chaîne de caractère (à l'aide de la fonction Find) et ensuite de récupérer ce que contient la cellule juste en dessous (grâce à la fonction Offset).

J'ai déjà commencer le début du code, mais je n'arrive pas à coder correctement la partie recherche de cellule.

Voici mon code :

Dim Fichier

Dim wb As Object

Dim Indice As String

Dim Indice1 As Range

Set wb = CreateObject("Shell.Application")

wb.Open (Fichier)

With ActiveSheet

Set Indice1 = .Range("A:R").Find(What:="IND/EDI") > La compilation affiche : Variable objet ou variable de bloc With non définie

'Indice = Indice1.Offset ..

End With

wb.Close

Set wb = Nothing

En gros, je cherche à trouver la cellule contenant "IND/EDI", pour ensuite stocker dans "Indice" ce que contient la cellule juste en dessous.

Merci pour vos réponses

Bonsoir,

Je ne comprends pas votre code :

Set wb = CreateObject("Shell.Application")
wb.Open (Fichier)

ce code n'ouvre pas un fichier mais un répertoire.

Les variables sont illogiques : "wb" , c'est plutôt pour un workbook et "Fichier" pour un répertoire ne me parait pas vraiment indiqué.

Bonjour,

Il est donc possible que mon erreur provienne de la alors…

Enfait j'ai une fonction récursive au début que je n'ai pas affiché car elle fonctionne très bien. Elle permet de récupérer des fichiers par des boucles for each …. in ….

Ducoup ma question serait plus : quel est le bon code pour ouvrir ce fichier, pour ensuite utiliser la fonction Find et Offset à l'intérieur ?

Je viens de modifier mon code comme suivant :

Set wb = Workbooks.Open(Fichier)

With ActiveSheet

Set Indice1 = .Range("A:R").Find(What:="IND/EDI")

MsgBox (Indice1.Address)

Et ça fonctionne très bien ! Merci Thev cela m'a beaucoup aidé

Est ce que quelqu'un aurait une idée de code pour utiliser la fonction Offset ? Indice1 renvoie $Q$1 et j'aimerais stocker dans une variable string ce qu'il y a en $Q$2.

Bonjour,

A priori

Indice = Indice1.Offset(1).Value

Parfait c'est ce que je voulais !

Merci beaucoup et bonne journée

Rechercher des sujets similaires à "utilisation fonctions find offset"