Amélioration d'un code VBA
Résolu
plastickman
Messages postés
66
Statut
Membre
-
michel_m Messages postés 18903 Statut Contributeur -
michel_m Messages postés 18903 Statut Contributeur -
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
- Code blocks - Télécharger - Langages
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é...