Actualité informatique
Test comparatif matériel informatique
Jeux vidéo
Astuces informatique
Vidéo
Télécharger
Services en ligne
Forum informatique
01Business

|-  LOGICIELS


|||-  

Problème pour créer des objets avec Excel

 

88 utilisateurs inconnus
Ajouter une réponse
 

 
Page photos
 
     
Vider la liste des messages à citer
 
 Page :
1
Auteur
 Sujet :

Problème pour créer des objets avec Excel

RÉSOLU
Prévenir les modérateurs en cas d'abus 
briedis
  1. Posté le 17/09/2016 à 15:02:48  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Bonjour,

Pour les besoins de mon travail, j'avais développé une macro qui créé des fichiers .text en nommant chacun d'eux avec le texte de la colonne A et collant le texte de la colonne B. http://expirebox.com/download/ [...] af391.html
Exemple:
A B
lapin lapinette

On aura donc un fichier lapin.txt dans lequel se trouvera le texte "lapinette".
La macro génère un dossier "fichier texte" dans lequel on trouvera nos différents fichiers. Elle fonctionne correctement et n'a pas été très compliquée à développer.


A présent, on me demande de faire la même chose sauf qu'on me demande de coller plusieurs intitulés dans mon fichier.

Exemple
A B
lapin
bélier
géant des Flandres
papillon
bleu de Vienne
angora
en chocolat

L'idée est que la macro génère un fichier lapin.txt dans lequel se trouve les expressions: bélier
géant des Flandres
papillon
bleu de Vienne
angora
en chocolat

http://expirebox.com/download/ [...] 9be34.html

Je ne sais pas comment m'y prendre pour que la macro sélectionne le texte voulu.
Quelqu'un aurait une idée s'il vous plaît ?

Je vous remercie par avance.

Profil : Equipe sécurité
did80
Célèbre sur tout le forum (de 30 000 à 99 999 messages postés) Helpeur confirmé
  1. Posté le 17/09/2016 à 15:12:12  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Ce sujet a été déplacé de la catégorie DREAM TEAM 01net vers la catégorie LOGICIELS par did80


---------------
l'urgent est fait , l'impossible est en cours
pour les miracles prévoir des délais
(Publicité)
willyplaisir
Expert Excel Habitué (de 5 000 à 9 999 messages postés)
  1. Posté le 17/09/2016 à 16:11:25  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
bjr

Comme tu n'as pas eu de reponse sur l'autre site
http://www.developpez.net/foru [...] ets-excel/

modifies ta macro mon Lapin comme ceci

Code :(Double-cliquez pour supprimer les numéros de ligne)
  1. Sub Test()
  2. Dim i As Long, LastRow As Long
  3. Dim iFichier As Integer, sDossier As String
  4. Dim sNomDossier As String, sNomFichier As String
  5.  
  6.    LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
  7.    sNomDossier = "fichiers texte"
  8.    sDossier = ThisWorkbook.Path & "\" & sNomDossier
  9.  
  10.    CreationDossier sDossier
  11.  
  12.    sNomFichier = Format(Feuil1.Cells(1, 1), "0000") & ".txt"
  13.    iFichier = FreeFile
  14.    Open sDossier & "\" & sNomFichier For Output As #iFichier
  15.  
  16.         For i = 2 To LastRow
  17.            Print #iFichier, Feuil1.Cells(i, 2)
  18.         Next i
  19.    Close #iFichier
  20. End Sub

 :hello:
Message édité par willyplaisir le 19/09/2016 à 17:36:42

---------------
[:ahlefoufou] Merci de sauver les chats abandonnés en aidant cette association : [:tazounet:5]
- Pension MillePattes
willyplaisir
Expert Excel Habitué (de 5 000 à 9 999 messages postés)
  1. Posté le 17/09/2016 à 16:51:38  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
re, encore mieux!

tu fais un double clic sur un nom de la colonne A (cellule jaune) pour lancer la macro

voir fichier démo
http://www.cjoint.com/c/FIrqXu​lkPpW


Code :(Double-cliquez pour supprimer les numéros de ligne)
  1. Sub nom()
  2.  
  3. Dim i As Long, LastRow As Long
  4. Dim iFichier As Integer, sDossier As String
  5. Dim sNomDossier As String, sNomFichier As String
  6.  
  7.    sNomDossier = "fichiers texte"
  8.    sDossier = ThisWorkbook.Path & "\" & sNomDossier
  9.  
  10.    CreationDossier sDossier
  11.  
  12.    sNomFichier = nom_A & ".txt"
  13.    iFichier = FreeFile
  14.    Open sDossier & "\" & sNomFichier For Output As #iFichier
  15.  
  16.      i = Lig_A + 1
  17.         Do While Range("B" & i) <> ""
  18.            Print #iFichier, ActiveSheet.Cells(i, 2)
  19.         i = i + 1
  20.         Loop
  21.    Close #iFichier
  22.  
  23. End Sub

 :hello:
Message édité par Tintin10 le 17/09/2016 à 18:49:47

---------------
[:ahlefoufou] Merci de sauver les chats abandonnés en aidant cette association : [:tazounet:5]
- Pension MillePattes
briedis
  1. Posté le 20/09/2016 à 07:41:39  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Alors là, je suis scié !! C'est tellement simple quand on voit la solution :D

Un grand merci pour ton aide. Je te suis très reconnaissant.
J'ai répondu à ton MP et partagé tes associations sur mes groupes FB: nous sommes tous très impliqués dans la protection animale ;)

Je te souhaite une excellente journée.

(Publicité)
briedis
  1. Posté le 20/09/2016 à 08:32:10  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Juste pour info j'avais également soumis cette demande sur developpez.com (1. dans le cas où je n'aurais pas de pistes sur 01net et 2. au cas où quelq'un aurait une idée intéressante là-bas 3. C'est toujours plus simple quand on est à plusieurs sur un problème). Cela dit, je partage systématiquement les résultats et les programmes sur les deux forums.

Je n'ai eu qu'une réponse qui propose les pistes suivantes afin de résoudre ce problème:

"Il faudrait déjà ajouter une condition dans le cas où la cellule testée soit vide :
Code :(Double-cliquez pour supprimer les numéros de ligne)
  1. If Cells(i,1) = "" Then Resume Next


Ensuite, il faut plus une cellule mais une concaténation de plusieurs cellules, je remplacerait donc cells(i,2) par une variable de type String.
Pour remplir cette variable, je ferais une autre boucle For dans la première (ou une boucle While) :

Code :(Double-cliquez pour supprimer les numéros de ligne)
  1. derligne = cells(i + 1).end(XlDown).row
  2. For j=i+1 to derligne
  3.  MonTexte = MonTexte & cells(j,2).value
  4. Next j

Après si il faut les valeurs sous forme de tableau, il faut utiliser une variable de type tableau (array), dimensionner le tableau en fonction du nombre de valeurs (nombre d'itérations de la boucle For (i+1 à derligne) et donner un index à chaque valeur entrée dans le tableau, tout ça dans la deuxième boucle For (Une petite recherche sur l'utilisation des variables tableau peut être très intéressante)."

N'hésitez pas à utiliser et partager cette macro si vous souhaitez générer des objets avec Excel ;)

Edit par Tintin10 : rajout des balises de code
Message édité par Tintin10 le 20/09/2016 à 17:20:42
willyplaisir
Expert Excel Habitué (de 5 000 à 9 999 messages postés)
  1. Posté le 20/09/2016 à 09:50:20  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
bjr Briedis,

Merci pour l'info pour les internautes intéressés.

c'est très bien de connaitre la syntaxe des commandes VBA, mais il est nécessaire de faire un organigramme du programme avant pour t'assurer du bon fonctionnement et le placement des boucles et variables/constantes utilisées.Ensuite c'est plus facile à programmer pour ne rien oublier.

Content de t'avoir modestement aidé.
Merci encore de penser aux animaux abandonnés
Et bienvenu sur le forum 01Net

willy :hello:


---------------
[:ahlefoufou] Merci de sauver les chats abandonnés en aidant cette association : [:tazounet:5]
- Pension MillePattes
 Page :
1

Aller à :
 

Sujets relatifs
Problème de clavier sur Sony Problème de son depuis la migration à Windows 10
problème après suppression dossier AVIRA W.Live Mail-Problème Pièces jointes
erreur 0xc0000022 pour word ou excel 16 sous Windows 10 créer deuxième dossier images dans Bibliotheques
[Inkscape] Groupement d'objets intempestif Problème eurosport player sur pc
Plus de sujets relatifs à : Problème pour créer des objets avec Excel

Les 5 sujets de discussion précédents Nombre de réponses Dernier message
exel macro d'enregistrement sur disque"D" 6
Sous-Catégories Excel 1
PDF : Depuis page web ne se génère pas 7
Formule Excel 1
fonction rechercher excel 8