Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA : problème pour un ctrl + F dans une colonne et non sur toute la feuille.

dionys0s

XLDnaute Impliqué
Bonjour/soir le forum

j'ai beau me creuser l'entendement, je ne parvient pas à comprendre ceci :

Pourquoi ce code-ci marche ?

Code:
LignProjOpé = Sheets("Analytique").[B]Cells[/B].Find(What:=ProjOpé, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row

Et pourquoi celui-ci ne marche pas ?

Code:
LignProjOpé = Sheets("Analytique").[B]Columns(1)[/B].Find(What:=ProjOpé, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row

Je précise qu'il n'y a pas de cellule fusionnée.
C'est sûrement tout bête, mais je ne comprends pas. D'avance merci pour votre aide
 

Softmama

XLDnaute Accro
Re : VBA : problème pour un ctrl + F dans une colonne et non sur toute la feuille.

Bonjour,

Perso, je ne vois aucune raison pour qu'elle ne marche pas, à moins que les données cherchées ne se trouvent pas en colonne A. Je teste de mon côté et vois ce que ça donne.
 

JNP

XLDnaute Barbatruc
Re : VBA : problème pour un ctrl + F dans une colonne et non sur toute la feuille.

Bonjour le fil ,
Code:
LignProjOpé = Sheets("Analytique").Range("1:1").Find(What:=ProjOpé, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
fonctionne en tout cas .
Bonne soirée
 

Softmama

XLDnaute Accro
Re : VBA : problème pour un ctrl + F dans une colonne et non sur toute la feuille.

Re,

Bon ben verdict, ça marche très bien chez moi. Reste à voir si ta variable ProjOpé est correctement définie et que tu as bien déclaré tes 2 variables ProjOpé en STring et LignProjOpé en Integer ?

[EDIT(H)] lu JNP
 

dionys0s

XLDnaute Impliqué
Re : VBA : problème pour un ctrl + F dans une colonne et non sur toute la feuille.

Bonjour JNP
Re Softmama

je suppose que ma variable est correctement définie puisque dans le premier cas ça fonctionne.

JNP ça ne marche pas chez moi avec Range("1:1").
Je cite :
Erreur d'exécution de type '13':
Incompatibilité de type
 

dionys0s

XLDnaute Impliqué
Re : VBA : problème pour un ctrl + F dans une colonne et non sur toute la feuille.

Mon code avec mes variables définies


Code:
Dim ProjOpé As String
ProjOpé = Sheets("Formulaire").Range("C4")
Dim LignProjOpé As Integer
LignProjOpé = Sheets("Analytique").Range("1:1").Find(What:=ProjOpé, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
 

dionys0s

XLDnaute Impliqué
Re : VBA : problème pour un ctrl + F dans une colonne et non sur toute la feuille.

Re tout le monde

pour finir j'ai ajouté du code pour afficher l'onglet, sélectionner la cellule A1, et là ça veut bien marcher.

Curieux.
 

JNP

XLDnaute Barbatruc
Re : VBA : problème pour un ctrl + F dans une colonne et non sur toute la feuille.

Re ,
Le problème vient de s'il n'y a aps de réponse, un Range Nothing n'a pas de propriété Row...
Code:
Dim ProjOpé As String, Cherchée As Range
ProjOpé = Sheets("Formulaire").Range("C4")
Dim LignProjOpé As Integer
Set Cherchée = Sheets("Analytique").Range("A:A").Find(What:=ProjOpé, LookIn:=xlFormulas, _
LookAt:=xlPart)
If Cherchée Is Nothing Then
MsgBox "Pas de réponse !"
Else
LignProjOpé = Cherchée.Row
End If
MsgBox LignProjOpé
Bonne soirée
 

dionys0s

XLDnaute Impliqué
Re : VBA : problème pour un ctrl + F dans une colonne et non sur toute la feuille.

En fait je crois que le problème c'est que mon classeur, au fur et à mesure de l'exécution des macros et autres userforms en pagaille (9 feuilles, 18 UserForms, 10 macros) passe son temps à se protéger et se déprotéger. Du coup si la cellule sélectionnée est à droite de la colonne de recherche (ou en bas de la ligne de recherche) le .find fait buguer.

Donc faut que je me creuse et plonge dans mon foutra de code et y caller des petits Range("A1").select un peu partout à chaque fois que je m'apprête à reprotéger le classeur (et les feuilles. Surtout les feuilles)

Je m'ai fait compris ?

Bonne soirée à tous.
Et bon week end !!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…