Erreur fonction "RechercheV"

AntoineM

XLDnaute Junior
Bonjour le forum,

Je vous sollicite aujourd'hui pour un problème dont je ne vois pas la solution (peut être le nez trop dedans).

J'ai un fichier Excel (pièce jointe), à l'intérieur je copie des données extraites d'un autre classeur par macro, sur une autre feuille j'aimerais consolider mes données dans un tableau avec une fonction rechercheV.

Malheureusement la fonction me met en résultat #N/A alors que la valeur chercher se trouve bien dans mon tableau. Quand je réécris le texte de mon tableau de gauche, la fonction marche, cela dis, je ne peux pas le faire car les données extraites de l'autre classeur seront nombreuses et surtout jamais les mêmes.


Merci à tout ceux qui me liront,

Antoine
 

Pièces jointes

  • ClasseurEssai.xlsx
    15 KB · Affichages: 45
  • ClasseurEssai.xlsx
    15 KB · Affichages: 54
  • ClasseurEssai.xlsx
    15 KB · Affichages: 44
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : Erreur fonction "RechercheV"

Bonjour,
Dans ta colonne A : si tu fais code(stxt(h2;1;1)) tu obtiens le résultat 63 donc toutes les valeurs (texte et num) sont précédées d'un caractère 63 : ce qui est bizarre c'est que car(63) donne le point d'interrogation, cependant
avec =RECHERCHEV(CAR(63)&H2;$A$1:$B$48;2;0) ça fonctionne (y compris pour les valeurs texte)
avec =RECHERCHEV(""&H2;$A$1:$B$48;2;0) ça ne fonctionne pas

peut-être revoir ta macro d'export ....
 

Dugenou

XLDnaute Barbatruc
Re : Erreur fonction "RechercheV"

Re,
la formule proposée =RECHERCHEV(CAR(63)&H2;$A$1:$B$48;2;0) fonctionne sur ton fichier tel quel donc il me semble que le problème est réglé.
Ma suggestion était juste de revoir ta macro qui insère peut être ce caractère au cours de son déroulement
 

AntoineM

XLDnaute Junior
Re : Erreur fonction "RechercheV"

D'accord je n'avais pas compris ! Merci alors pour ta réponse, je mets mon bout de code macro ici alors :
(précise moi si il faut que je crée un autre topic)

VB:
Sub ExtractionISS()

Application.ScreenUpdating = False

'Dénomination des classeurs
Dim Wbk As Workbook
Dim ClasseurSource As Workbook
Dim ClasseurDest As Workbook

Set ClasseurSource = ThisWorkbook

For Each Wbk In Application.Workbooks
    If Left(Wbk.Name, 8) = "ISS_File" Then
        Set ClasseurDest = Wbk
               Exit For
    End If
Next Wbk

'message d'erreur si fichier ISS non-activé
On Error Resume Next
 ClasseurDest.Activate
 If Err.Number <> 0 Then
  MsgBox "Avez-vous bien ouvert le fichier Excel de l'extraction ISS ?"

 Else

'Copie des données ISS dans feuille temporaire
ClasseurSource.Activate
Sheets.Add.Name = "ISStemp"
ClasseurSource.Sheets("ISStemp").Range("A1:I10000") = _
ClasseurDest.Sheets("Comparison details").Range("A1:I10000").Value

'Définition des sous-totaux
    Sheets("ISStemp").Range("A1").Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(4), _
    Replace:=True, PageBreaks:=False, SummaryBelowData:=True
    ActiveSheet.Outline.ShowLevels RowLevels:=2
    
'Copie des lignes de sous total
Sheets("ISStemp").Range("A1:AZ1000").SpecialCells(xlVisible).Copy _
Destination:=Sheets("ISS").Range("A1:AZ1000")

'supression des colonnes inutiles et attribution du nom "quantité"
Columns("B:B").Select
    Selection.Delete Shift:=xlToLeft
    Selection.Delete Shift:=xlToLeft
Columns("C:C").Select
    Selection.Delete Shift:=xlToLeft
    Selection.Delete Shift:=xlToLeft
    Selection.Delete Shift:=xlToLeft
    Range("B1").Value = "Quantité"
    
Sheets("ISS").Activate
Rows("1").Select
Selection.Delete Shift:=xlUp

'supression des colonnes inutiles et attribution des noms
Columns("B:B").Select
    Selection.Delete Shift:=xlToLeft
    Selection.Delete Shift:=xlToLeft
Columns("C:C").Select
    Selection.Delete Shift:=xlToLeft
    Selection.Delete Shift:=xlToLeft
    Selection.Delete Shift:=xlToLeft
    Range("A1").Value = "Référence"
    Range("B1").Value = "Quantité"

'supression de la ligne "total général"
Dim I As Integer
For I = [A65000].End(xlUp).Row To 1 Step -1
If Not Cells(I, 1).Find("Total général") Is Nothing Then Rows(I).Delete
Next I

'efface les 6 premiers caracteres ("Total ") dans chaque cellule
Dim Nc, Cel As Range
    For Each Cel In Range("A2", [A65000].End(xlUp))
              Nc = Len(Cel)
        Cel.Value = Right(Cel, Nc - 6)
    Next Cel
    
Sheets("ISS").Cells.ClearFormats
    
'Supression de la feuille ISS et activation de la feuille principale
Application.DisplayAlerts = False
Sheets("ISStemp").Delete
Application.DisplayAlerts = True
ClasseurSource.Sheets("Consolidation").Activate
    
Application.ScreenUpdating = True

 End If
 On Error GoTo 0

End Sub
 

Dugenou

XLDnaute Barbatruc
Re : Erreur fonction "RechercheV"

Re,
je suis nul en macro : ce que je lis me semble correct. J'ai l’impression que le travail de recopie se fait avec :
ClasseurSource.Sheets("ISStemp").Range("A1:I10000") = _
ClasseurDest.Sheets("Comparison details").Range("A1:I10000").Value

Si personne d'autre n'intervient et si tu souhaites corriger le pb à la source alors oui tu pourrais créer un nouveau topic

Cordialement
 

gosselien

XLDnaute Barbatruc
Re : Erreur fonction "RechercheV"

Bonsoir,

comme l'a dit mon petit camarade de classe, il y a un caractère parasite dans ta colonne A;
j'ai inséré une colonne avant et je retire alors le premier caractère (invisible en plus) pour remettre le tout en colonne A, et la recherche fonctionne :)

P.
 

Pièces jointes

  • ClasseurEssai.xlsm
    22.1 KB · Affichages: 35
  • ClasseurEssai.xlsm
    22.1 KB · Affichages: 36
  • ClasseurEssai.xlsm
    22.1 KB · Affichages: 44

Staple1600

XLDnaute Barbatruc
Re : Erreur fonction "RechercheV"

Bonsoir à tous

Une suggestion d'écriture simplifiée en passant
(normalement cette partie de ton code simplifiée ci-dessous fera la même chose que la partie de ton code initial)
VB:
'supression des colonnes inutiles et attribution du nom "quantité"
Columns("B:C").Delete Shift:=xlToLeft
Range("B1") = "Quantité"
With Sheets("ISS")
    .Rows("1").Delete Shift:=xlUp
'supression des colonnes inutiles et attribution des noms
    .Columns("B:C").Delete Shift:=xlToLeft
    .Range("A1:B1").Value = Array("Référence", "Quantité")
End With
 

AntoineM

XLDnaute Junior
Re : Erreur fonction "RechercheV"

Bonjour le dugenou, gosselien, staple1600, le forum,

Merci pour vos réponse.
@Dugenou : Tu m'as déjà bien aidé, même si je vais essayer les solution proposées pour enlever ce car(63) par macro, tu m'as enlevé une belle épinde du pied.

@gosselien : Y a t'il moyen de ne pas insérer de colonne et d'obtenir le traitement sur la colonne d'originie directement ?

@Staple1600 : Merci pour le code simplifier, j'étais passer par l'enrengistreur de macro et je ne savait pas trop quoi enlever :)
 

Discussions similaires

Réponses
7
Affichages
411
Réponses
8
Affichages
252

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth