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

Recherche sur les colonnes : utilisation de cells(1, i).value bugue.

  • Initiateur de la discussion Initiateur de la discussion Fred
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Fred

XLDnaute Nouveau
Salut a tous,

Je cherche a developper une macro en VBA pour faire une recherche d'une valeur sur les colonnes. En fait, dans un fichier Excel, j'ai une case ou l'utilisateur rentre un nombre et en cliquant sur un bouton, il effectue la recherche sur la premiere ligne et toutes les colonnes dans un autre fichier xls.
Or, quand je lance ma macro, j'ai une erreur qui me dit object not found. Or, toutes les cellules du fichier qu'on ouvre pour faire la recherche sont au format general (impossible de le changer, c'est verouille). Donc j'ai mis la case ou l'utilisateur entre le texte en general aussi. Mais impossible de comparer appramment.
L'erreur se trouve au niveau de If Cells(1, i).Value = VIN Then

Merci d'avance. =)

Voici le morceau de code :
Code:
VIN = Application.Workbooks("ABC.xls").Worksheets("Navigator_Sheet").Range("H6").Value 
    
        Workbooks.Open Filename:= _
        "XYZ.xls", ReadOnly:=True 
        
    Sheets("EFG").Select
    
    'We select data in the column which matchs with the VIN CODE.
    For i = 1 To 10000
    If Cells(1, i).Value = VIN Then
    column_letter = Left$(Cells(1, i).Address(0, 0), (i < 27) + 2) 'According to the index of the column, we get its letter.

Application.Workbooks("ABC.xls").Worksheets("Navigator_Sheet").Activate
 
Dernière édition:
Re : Recherche sur les colonnes : utilisation de cells(1, i).value bugue.

Chaque jour 15 colonnes sont ajoutees et je souhaite que le systeme tienne plus de 2 ans. Donc... Mais la j'essaye de travailler avec la derniere colonne non vide. Je recupere le nom de la colonne et je parcours mon tableau jusqu'a cette colonne.
Mais sinon, tu as une idee du pourquoi ca ne marche pas ???
Merci.
 
Re : Recherche sur les colonnes : utilisation de cells(1, i).value bugue.

Salut,

J'ai reussi par un autre moyen. Je mets le code si ca peut servir :
Code:
'We search for the last cell not empty.

Set Cible = DerniereCellule(ActiveSheet)
    
    If Not Cible Is Nothing Then
    C = NomCol(Cible.Column)
    Else
    MsgBox "La feuille est vide."
    End If

VIN = Application.Workbooks("***.xls").Worksheets("Navigator_Sheet").Range("H6").Value ' We get the value of the VIN code.
Set cell_searched = Range("G1:" & C & "1").Find(VIN)

If Not cell_searched Is Nothing Then
'Write your code.
Else
MsgBox "VIN code not found"
end if

Les fonctions sont :
Code:
Function DerniereCellule(Ws As Worksheet) As Range
'We search for the last cell of the activesheet.

    Dim NumLigne As Double, NumCol As Integer
    
    'Vérification si la feuille est totalement vide
    If Ws.UsedRange.Cells.Address = "$A$1" And _
        IsEmpty(Ws.Range("A1")) Then Exit Function
    
    With Ws
        'Identifie le numéro de ligne
        NumLigne = .Cells.Find("*", .Range("A1"), , , xlByRows, xlPrevious).Row
        'Identfie le numéro de colonne
        NumCol = .Cells.Find("*", .Range("A1"), , , xlByColumns, xlPrevious).Column
        
        Set DerniereCellule = .Cells(NumLigne, NumCol)
    End With
End Function

Et :
Code:
Function NomCol(Col As Long) As String
' This macro allows us to get the name of the column and not its index.
    If Col < 27 Then
        NomCol = Chr(Col + 64)
    Else
        NomCol = Chr(Int((Col - 0.1) / 26) + 64) & Chr(IIf((Col Mod 26) = 0, 26, (Col Mod 26)) + 64)
    End If
End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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