Microsoft 365 VBA Remplissage automatique tableau

  • Initiateur de la discussion Initiateur de la discussion BOILEAU
  • 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 !

BOILEAU

XLDnaute Junior
Bonjour,

J'essaye, mais sans succès, de remplir avec une formule VBA un tableau.
Si je peux trouver de l'aide, merci d'avance.
je vous joint mon fichier. Ce dernier est constitué de 3 feuilles
- IMPORT LES RECETTES : C'est la feuille qui contient les données
- IMPORT DANS COGILOG : C'est le tableau que je souhaite remplir avec les éléments de la feuille IMPORT LES RECETTES
- EXEMPLE TABLEAU : C'est pour que vous puissiez visualiser et comprendre comment le tableau doit être rempli. Cette feuille sera supprimée par la suite.
J'ai indiqué les cellules à remplir par des flèches. Les autres cellules servent à d'autres données.
Comme vous pourrez le constater, le nombre de lignes totale est inconnue et la constitution en nombre de ligne de chaque bloc de facture est variable.
La feuille contenant le tableau que je dois exporter en .txt dans mon logiciel de gestion est IMPORT DANS COGILOG.
Si dans la formule VBA, il est possible d'intégrer à l'aide d'un bouton l'export du fichier en .txt se serait vraiment top ! le séparateur de champ est le caractère de tabulation (ascii 9), le séparateur de ligne peut être le séparateur de ligne Mac, Window ou Unix.

Merci pour votre aide précieuse.
A votre dispo,
Bonne journée.

Frédéric
 

Pièces jointes

MERCI !!!!
Bonne journée.
Frédéric
François,

Désolé de vous embêter, mais je pense avoir fait une bêtise pour l'enregistrement du fichier.
J'ai changé mots pour mots chemin="C:\Users\franc\Desktop". Mais je pense que ce n'est pas bon puisque j'ai un message d'erreur.
Je suis sur Mac et après recherche sur le net, je ne comprend pas ce qu'il faut remplacer et comment.
Merci de votre aide.
Cordialement,
Frédéric
 
Bonjour François,

Quelle joie de découvrir votre solution ce matin.
C'est super top !!!!
Tout marche parfaitement.
Je constate que j'ai encore du chemin à faire avant d'arriver à votre niveau.
Un énorme merci.
Bonne journée
Frédéric
Bonjour François,
Je me permet de revenir vers vous. Je constate que j'ai oublié de mentionner un détail dans ma demande.
Lors de la construction du tableau, il faudrait que (Dans le tableau exemple donné) les cellules C3; C5 et C12 possède la valeur du chiffre "2".
Bien sur, cette cellule doit être renseignée (se répéter) pour chaque entête de facture du tableau.
J'avais mis une croix dans ces cellules et c'est une erreur de ma part.
Très sincèrement désolé.
J'espère que vous pourrez corriger la formule qui par ailleurs est super rapide.
Bon samedi
Cordialement,
Frédéric
 
Bonjour François,
Je me permet de revenir vers vous. Je constate que j'ai oublié de mentionner un détail dans ma demande.
Lors de la construction du tableau, il faudrait que (Dans le tableau exemple donné) les cellules C3; C5 et C12 possède la valeur du chiffre "2".
Bien sur, cette cellule doit être renseignée (se répéter) pour chaque entête de facture du tableau.
J'avais mis une croix dans ces cellules et c'est une erreur de ma part.
Très sincèrement désolé.
J'espère que vous pourrez corriger la formule qui par ailleurs est super rapide.
Bon samedi
Cordialement,
Frédéric
Bonjour @fanfan38,

J'ai un petit soucis dans la formule de l'enregistrement en fichier .txt.
L'enregistrement que j'ai fais ce matin n'a pas pris en compte les dernières lignes 38 et 39 du tableau import client.
Pour tester j'ai supprimer des lignes en amont (de 3 à 24) et j'ai refais l'enregistrement en .txt. Les lignes 38 et 39 du client (de l'ancien tableau) qui n'avait été pris en compte, sont bien présentes dans ce nouvel enregistrement.
Est-ce un nombre de ligne qui pose problème ? Je ne connais pas à l'avance le nombre de lignes de l'import.
Ci-dessous, la formule en cour :
Sub EnregistrerFeuilleEntxt()
Dim i As Long, j As Long, DernièreLigne As Long, chemin As String, fich As String
Const Sep = vbTab
chemin = ActiveWorkbook.Path
fich = InputBox("Nom du fichier", "Fichier TEXTE")
Application.ScreenUpdating = False 'Fige l'écran (évite les mvt d'écran)
Open chemin & "\" & fich & ".txt" For Output As #1 'Tu crées le fichier text
Worksheets("IMPORT DANS COGILOG").Select
DernièreLigne = Cells(1, 2).SpecialCells(xlCellTypeLastCell).Row - 1
For i = 1 To DernièreLigne
For j = 1 To 107
Print #1, Cells(i, j).Value & Sep; 'ici, le séparateur
Next j
Print #1, Cells(i, j + 1).Value ' ici pas de séparateur pr le saut de ligne
Next i
Close #1
Application.ScreenUpdating = True
End Sub

Pour améliorer, serait-il possible d'avoir une fenêtre qui me demande où enregistrer ce fichier .txt ? Pour info je suis sur Excel Mac.

Merci de votre aide.

Frédéric
 
- 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

Réponses
5
Affichages
515
Réponses
16
Affichages
157
D
  • Question Question
2
Réponses
28
Affichages
1 K
Deleted member 441486
D
Réponses
11
Affichages
737
Retour