Amélioration d'un code VBA
Résolu
plastickman
Messages postés
66
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
A vrai dire j'ai deux questions:
1/
J'utilise le code suivant:
J'aimerais que lors du déroulement, si la cellule D17 de ma feuille "Renseignements" est vide, la valeur importée dans mon document soit 0 et non "" ce qui a pour effet de décaler toutes mes lignes.
2/
J'ai des noms de fichiers.xls dans la colonne A (qui sont tous dans un même répertoire nommé "Résultat"). Dans la colonne B, on trouve "OUI" ou "NON".
Je souhaiterais réaliser un code qui me permettrait, pour chaque fichier ayant la mention "OUI" devant, d'ouvrir ce dernier et d'imprimer la feuille "Facture" de ce dernier.
Merci d'avance à ceux qui prendront le temps de m'aider.
A vrai dire j'ai deux questions:
1/
J'utilise le code suivant:
Sub ExtractRefresh()
Dim ScanFic As Office.FileSearch
Dim NomFic As Variant
Dim Nbr As Long
Set ScanFic = Application.FileSearch
With ScanFic
.NewSearch
.LookIn = ActiveWorkbook.Path
.SearchSubFolders = True
.Filename = xls
.MatchTextExactly = True
Nbr = .Execute
For Each NomFic In .FoundFiles
If Right(NomFic, 13) = "resultats.xls" Then GoTo suite
Workbooks.Open Filename:=NomFic
With Workbooks("resultats.xls").Sheets("diagnostics")
.Range("D65536").End(xlUp).Offset(1, 0).Value = ActiveWorkbook.Sheets("Renseignements").Range("D17").Value
End With
ActiveWorkbook.Save
ActiveWorkbook.Close
suite:
Next
End With
End Sub
J'aimerais que lors du déroulement, si la cellule D17 de ma feuille "Renseignements" est vide, la valeur importée dans mon document soit 0 et non "" ce qui a pour effet de décaler toutes mes lignes.
2/
J'ai des noms de fichiers.xls dans la colonne A (qui sont tous dans un même répertoire nommé "Résultat"). Dans la colonne B, on trouve "OUI" ou "NON".
Je souhaiterais réaliser un code qui me permettrait, pour chaque fichier ayant la mention "OUI" devant, d'ouvrir ce dernier et d'imprimer la feuille "Facture" de ce dernier.
Merci d'avance à ceux qui prendront le temps de m'aider.
A voir également:
- Amélioration d'un code VBA
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Scanner qr code pc - Guide
5 réponses
Bonjour
pour le 1:
le principe
Remarque: attention si tu bascules un jour sur XL>=2007, filesearch n'est + valable; voir:
https://silkyroad.developpez.com/vba/classefilesearch/
pour le 1:
le principe
Range("B1") = IIf(IsEmpty(Range("A1")), 0, Range("A1"))
Remarque: attention si tu bascules un jour sur XL>=2007, filesearch n'est + valable; voir:
https://silkyroad.developpez.com/vba/classefilesearch/
Bonjour,
Et tout d'abord merci de ton aide et pour l'info sur "filesearch", je ne savais pas.
Je suis tout à fait d'accord avec le principe, mais je n'arrive pas à l'intégrer à ma ligne:
J'ai toujours un message d'erreur m'indiquant qu'il veut une valeur.
Et pour ma question 2, as-tu une petite idée à me soumettre?
Et tout d'abord merci de ton aide et pour l'info sur "filesearch", je ne savais pas.
Je suis tout à fait d'accord avec le principe, mais je n'arrive pas à l'intégrer à ma ligne:
.Range("D65536").End(xlUp).Offset(1, 0).Value = ActiveWorkbook.Sheets("Renseignements").Range("D17").Value
J'ai toujours un message d'erreur m'indiquant qu'il veut une valeur.
Et pour ma question 2, as-tu une petite idée à me soumettre?
Bonsoir,
Il n'y a pas vraiment de rapport, c'est juste que je travaille beaucoup avec le même classeur, et ce sont deux fonctions dont j'ai besoin, l'une pour extraire les numéros factures impayées, et l'autre pour éditer des relances.
Il n'y a pas vraiment de rapport, c'est juste que je travaille beaucoup avec le même classeur, et ce sont deux fonctions dont j'ai besoin, l'une pour extraire les numéros factures impayées, et l'autre pour éditer des relances.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
C'est bien ce que je craignais: dans le 2 tu dis que tout est dans le m^me dossier et dans le code du 1 tu cherches dans les sous dossiers:
.LookIn = ActiveWorkbook.Path
.SearchSubFolders = True
alors je perd confiance...
D'ailleurs, ce n'est pas un hasard si MS a supprimé "filesearch" particulièrement rigide et compliqué...
C'est bien ce que je craignais: dans le 2 tu dis que tout est dans le m^me dossier et dans le code du 1 tu cherches dans les sous dossiers:
.LookIn = ActiveWorkbook.Path
.SearchSubFolders = True
alors je perd confiance...
D'ailleurs, ce n'est pas un hasard si MS a supprimé "filesearch" particulièrement rigide et compliqué...