IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

RechercheV sans erreur


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2017
    Messages : 31
    Par défaut RechercheV sans erreur
    Je chercher à faire une recherchev dans chacun des fichiers ouvert, dans la feuille RAA, à la cellule K19, Recherchev(b19;;[RA.xlsx]Comptes!$A:$C;3;0). Actuellement, la macro m'affiche le texte suivant (et non pas la valeur) à la case désignée: «IFERROR(VLOOKUP(B19,myrange,3,0),"")». Quelqu'un pourra me corriger svp ?

    Code vba : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Sub macro_ouvrir_fichiers()
    '
    ' macro_ouvrir_fichiers Macro
    '
    Dim cheminDossier As String
    Dim fichier As String
    Dim classeur As Workbook
    Dim ws As Worksheet
    Dim ww As Worksheet
    Dim lastRow As Long
    'Spécifiez le chemin d'accès complet du dossier contenant les fichiers
    cheminDossier = "C:\Documents\TEST"
    ' Désactivez les mises à jour d'écran pour améliorer les performances
    Application.ScreenUpdating = False
    ' Vérifiez si le dossier existe
    If Dir(cheminDossier, vbDirectory) = "" Then
    MsgBox "Le dossier spécifié n'existe pas.", vbExclamation
    Exit Sub
    End If
    ' Obtenez le premier fichier dans le dossier
    fichier = Dir(cheminDossier & "\*.xls*")
    ' Bouclez à travers tous les fichiers du dossier
    Do While fichier <> ""
    'Ignorer les dossiers et les fichiers cachés
    If (GetAttr(cheminDossier & "\" & fichier) And vbDirectory) <> vbDirectory And Left(fichier, 1) <> "." Then
    ' Ouvrez le fichier Set
    Workbooks.Open (cheminDossier & "\" & fichier)
    ' Ajoutez ici le code pour effectuer des opérations sur le fichier ouvert
    Set ws = ActiveWorkbook.Sheets("RAA")
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    Set cell = Range("B19")
     Set ww = Workbooks("RA.xlsx").Worksheets("Comptes")
    Set myrange = Columns("A:C")
    With ws.Range("K19:K" & lastRow)
    .Formula = IfError(VLookup(B19, myrange, 3, 0), """")
    .Value = .Value
    End With
    cell.Select
    ' Fermez le fichier en enregistrant les modifications
    ActiveWorkbook.Close SaveChanges:=True
    End If
    ' Obtenez le fichier suivant
    fichier = Dir
    Loop
    ' Réactivez les mises à jour d'écran
    Application.ScreenUpdating = True
    ' Affichez un message indiquant que l'opération est terminée
    MsgBox "Tous les fichiers ont été ouverts avec succès.", vbInformation
    End Sub

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut,
    Dans votre code, ligne rouge,vous ne pouvez pas utiliser IfError et Vlookup comme du code VBA, ce sont des fonctions de feuille de calcul, donc il faut les placer entre guillemets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Formula = "=IFERROR(VLOOKUP(B19,myrange,3,0),"""")"
    De plus, vous devez définir correctement la variable myrange en utilisant la syntaxe appropriée pour faire référence à une plage de cellules dans un autre classeur. Par exemple : Set myrange = ww.Range("A:C"). Essayez de modifier votre code en conséquence et voyez si cela résout votre problème.

  3. #3
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2017
    Messages : 31
    Par défaut
    Merci Franc ! En apportant les modifications suggérées, le problème persiste. J'ai toujours un texte au lieu d'une valeur «IFERROR(VLOOKUP(B19, myrange, 3, 0), "")».

    Citation Envoyé par Franc Voir le message
    Salut,
    Dans votre code, ligne rouge,vous ne pouvez pas utiliser IfError et Vlookup comme du code VBA, ce sont des fonctions de feuille de calcul, donc il faut les placer entre guillemets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Formula = "=IFERROR(VLOOKUP(B19,myrange,3,0),"""")"
    De plus, vous devez définir correctement la variable myrange en utilisant la syntaxe appropriée pour faire référence à une plage de cellules dans un autre classeur. Par exemple : Set myrange = ww.Range("A:C"). Essayez de modifier votre code en conséquence et voyez si cela résout votre problème.

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Teste ceci, si ça ne marche pas, il faudrait ton fichier pour tester.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Formula = "=IfError(VLookup(B19, " & myrange.Address(External:=True) & ", 3, 0), """")"

Discussions similaires

  1. lien <a href> sans erreur
    Par loady dans le forum Langage
    Réponses: 3
    Dernier message: 12/07/2006, 00h14
  2. [Upload] pb upload fichier sans erreur
    Par guns17 dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2006, 14h30
  3. comment faire un group by sans erreur
    Par phpaide dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/04/2006, 09h11
  4. Restaurer ma Base sans Erreur???
    Par touhami dans le forum Connexion aux bases de données
    Réponses: 9
    Dernier message: 08/03/2006, 17h04
  5. REquete sans erreur sql qui n'agit pas ........
    Par Skam dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/02/2005, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo