[VBA] Aide sur prog macro Excel
ancelot101
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
20100 -
20100 -
Bonjour,
Bonjour,
Je suis très très novice et j'ai à manipuler des macros excel.. J'ai besoin, à partir d'adresses e-mails saisies sur excel, les joindre bout à bout en les séparant de virgules... au début j'ai opté pour ceci
Bonjour,
Je suis très très novice et j'ai à manipuler des macros excel.. j'ai besoin, sur un tableau d'annuaire avec plusieurs adresses mails, de joindre les différentes adresses en un fichier texte séparés par des virgules, j'avais opté au début pour ce code
Dim iFile As Integer
Dim chaine(41) As String
Range("H8").Select
chaine(1) = ActiveCell.Text
Range("H9").Select
chaine(2) = ActiveCell.Text
....
Range("H47").Select
chaine(40) = ActiveCell.Text
Range("H48").Select
chaine(41) = ActiveCell.Text
iFile = FreeFile
Open "C:\Liste_diffusion_créée.txt" For Output As #iFile
Print #iFile, Join(chaine, ", ")
Le problème c'est que cette solution sort toutes les adresses mails et ne prend pas en compte le filtre... y a-t-il un moyen plus judicieux? J'avais pensé à la possibilité de demander à l'utilisateur de sélectionner une plage de données, et d'y travailler ensuite mais là encore je ne sais pas quel opérateur permet de le faire...
Merci d'avance pour vos réponses...
Bonjour,
Je suis très très novice et j'ai à manipuler des macros excel.. J'ai besoin, à partir d'adresses e-mails saisies sur excel, les joindre bout à bout en les séparant de virgules... au début j'ai opté pour ceci
Dim iFile As Integer Dim chaine(41) As String Range("H8").Select chaine(1) = ActiveCell.Text Range("H9").Select chaine(2) = ActiveCell.Text .... Range("H47").Select chaine(40) = ActiveCell.Text Range("H48").Select chaine(41) = ActiveCell.Text iFile = FreeFile Open "C:\Liste_diffusion_créée.txt" For Output As #iFile Print #iFile, Join(chaine, ", ") ...
Bonjour,
Je suis très très novice et j'ai à manipuler des macros excel.. j'ai besoin, sur un tableau d'annuaire avec plusieurs adresses mails, de joindre les différentes adresses en un fichier texte séparés par des virgules, j'avais opté au début pour ce code
Dim iFile As Integer
Dim chaine(41) As String
Range("H8").Select
chaine(1) = ActiveCell.Text
Range("H9").Select
chaine(2) = ActiveCell.Text
....
Range("H47").Select
chaine(40) = ActiveCell.Text
Range("H48").Select
chaine(41) = ActiveCell.Text
iFile = FreeFile
Open "C:\Liste_diffusion_créée.txt" For Output As #iFile
Print #iFile, Join(chaine, ", ")
Le problème c'est que cette solution sort toutes les adresses mails et ne prend pas en compte le filtre... y a-t-il un moyen plus judicieux? J'avais pensé à la possibilité de demander à l'utilisateur de sélectionner une plage de données, et d'y travailler ensuite mais là encore je ne sais pas quel opérateur permet de le faire...
Merci d'avance pour vos réponses...
A voir également:
- [VBA] Aide sur prog macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
1 réponse
Une astuce est de faire une sélection, de la copiée et de la collée dans un coin ...
Bon ok c'est pas clean mais ca fonctionne .. :-D
Une petite astuce de codage ..
plutôt que d'accéder directement au cellules en les nommant ( range("A13") )
Je te propose d'utiliser
ce code parcoure une zone de 40 lignes
NoLigne est incrémenté par la boucle For et vas de la valeur 1 à 40
NoColone = 1 c'est la colonne A
(par contre ce code ne tien pas conte lui aussi des filtre ..
donc commence à faire une copie dans un autre endroit de ton classeur et après tu parcoure ta liste
TFlorian.
Bon ok c'est pas clean mais ca fonctionne .. :-D
Range("A3:A12").Select Selection.Copy Range("D20").Select ActiveSheet.Paste
Une petite astuce de codage ..
plutôt que d'accéder directement au cellules en les nommant ( range("A13") )
Je te propose d'utiliser
NoLigne = 1 NoColone = 1 for NoLigne = 1 to 40 chaine(NoLigne) = Cells(NoLigne, NoColone).Value next NoLigne
ce code parcoure une zone de 40 lignes
NoLigne est incrémenté par la boucle For et vas de la valeur 1 à 40
NoColone = 1 c'est la colonne A
(par contre ce code ne tien pas conte lui aussi des filtre ..
donc commence à faire une copie dans un autre endroit de ton classeur et après tu parcoure ta liste
TFlorian.
comme quoi faut etre un minimum intelligent pour réussir dans la vie.. :)
Loul c'est 20100