A voir également:
- Comment transformer une Fonction en sub Macro VBA
- Fonction si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Transformer une image en icone - Guide
- Macro word - Guide
- Transformer majuscule en minuscule word - Guide
5 réponses
NHenry
Messages postés
15190
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 février 2025
353
31 oct. 2016 à 17:38
31 oct. 2016 à 17:38
Etant donné que la fonction ne retourne rien (il n'y a pas de "Majuscules=..."), il n'y a qu'à remplacer Function par Sub et virer le As long.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
1 nov. 2016 à 08:43
1 nov. 2016 à 08:43
Bonjour,
Une petite recherche sur le net:
Chaine de caractères en vba et tu tombes sur ce site:
https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-K
ce qui donne:
Voilà, il ne te reste plus qu'a faire une boucle sur ta colonne où tu mettras ce code
Recherche:
Boucle sur colonne en vba
Une petite recherche sur le net:
Chaine de caractères en vba et tu tombes sur ce site:
https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-K
ce qui donne:
Dim chaine As String chaine = "le bal des maudits" MsgBox StrConv(chaine, vbProperCase)
Voilà, il ne te reste plus qu'a faire une boucle sur ta colonne où tu mettras ce code
Recherche:
Boucle sur colonne en vba
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
2 nov. 2016 à 12:11
2 nov. 2016 à 12:11
En suivant mes conseils tu aurais pu faire cela:
d'après ceci:
https://excel.developpez.com/actu/47690/Boucles-pour-parcourir-une-colonne-une-ligne-une-plage-de-donnees-deux-nouvelles-methodes/
A mettre après la Sub qui supprime .AVI dans la chaine de caractère.
Il est bien entendu qu'i s'agit de la colonne A dans la Feuille 1
Bon courage
@+ Le Pivert
Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Set FL1 = Worksheets("Feuil1") NoCol = 1 'lecture de la colonne 1 For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) Var = StrConv(Var, vbProperCase) 'on met les majuscules FL1.Cells(NoLig, NoCol) = Var ' on met la nouvelle chaine Next Set FL1 = Nothing End Sub
d'après ceci:
https://excel.developpez.com/actu/47690/Boucles-pour-parcourir-une-colonne-une-ligne-une-plage-de-donnees-deux-nouvelles-methodes/
A mettre après la Sub qui supprime .AVI dans la chaine de caractère.
Il est bien entendu qu'i s'agit de la colonne A dans la Feuille 1
Bon courage
@+ Le Pivert
vieuxray
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
3 nov. 2016 à 07:20
3 nov. 2016 à 07:20
Salut cs_Le Pivert,
Merci beaucoup pour le petit code, j'ai fait des essais et merci ca fonctionne bien et c'est rapide, en plus je suis gâter, tu m'a mis des commentaires, c'est très apprécier.
Entre temps j'ai regarder pourquoi au moment de l'affichage de la (durée) des fichiers c'est si long a s'afficher en colonne (C).
Voudrais tu svp si tu a le temps bien sur, essayer de voir pourquoi l'affichage n'ai pas plus rapide que ca.
En tout cas merci encore pour la SUB, une excellente journée a toi, ici a Rouen première gelées.
Le programme sur ci-joint est dispo pour 21 jours sur ce lien
http://www.cjoint.com/c/FKbpnzI0oPz
Cordialement Ray
Merci beaucoup pour le petit code, j'ai fait des essais et merci ca fonctionne bien et c'est rapide, en plus je suis gâter, tu m'a mis des commentaires, c'est très apprécier.
Entre temps j'ai regarder pourquoi au moment de l'affichage de la (durée) des fichiers c'est si long a s'afficher en colonne (C).
Voudrais tu svp si tu a le temps bien sur, essayer de voir pourquoi l'affichage n'ai pas plus rapide que ca.
En tout cas merci encore pour la SUB, une excellente journée a toi, ici a Rouen première gelées.
Le programme sur ci-joint est dispo pour 21 jours sur ce lien
http://www.cjoint.com/c/FKbpnzI0oPz
Cordialement Ray
Salut NHENRY,
Merci pour ta réponse mais autant pour moi, je me suis tromper de code je suis désoler.
Mais ca ne change rien c'est pour faire une sub macro quand même.
le but étant de mettre une MAJUSCULE devant chaque mot d'une liste de vidéos.
encore merci et désolé pour cette erreur, celui ci est le bon.
bonne soirée
Cdlt Ray
Merci pour ta réponse mais autant pour moi, je me suis tromper de code je suis désoler.
Mais ca ne change rien c'est pour faire une sub macro quand même.
le but étant de mettre une MAJUSCULE devant chaque mot d'une liste de vidéos.
encore merci et désolé pour cette erreur, celui ci est le bon.
bonne soirée
Cdlt Ray
Function Majuscule_Devant_Chaque_Mot(ByVal Dossier As String) As Long
Dim Fso As Object, F As Object, Txt As String, Pos As Integer, Var As Integer
Set Fso = CreateObject("Scripting.FileSystemObject")
'NombreFichiers = FSO.GetFolder(Dossier).Files.Count
For Each F In Fso.GetFolder(Dossier).Files
If LCase(Right(F.Name, 4)) = ".avi" Then
Txt = F.Name
Pos = InStrRev(Txt, ".")
If Left(Txt, Len(Txt) - 4) = UCase(Left(Txt, Len(Txt) - 4)) Then
Txt = Application.Proper(Left(Txt, Len(Txt) - 4)) & ".avi"
ElseIf Txt = LCase(Txt) Then
Var = UCase(Left(Txt, Pos - 1))
Txt = UCase(Left(Txt, Pos - 1)) & ".avi"
End If
Name F.Path As Dossier & "\" & Txt
End If
Next F
Set Fso = Nothing
End Function
NHenry
Messages postés
15190
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 février 2025
353
31 oct. 2016 à 18:42
31 oct. 2016 à 18:42
Même réponse.
Salut NHenry, Salut a tous
Merci pour la réponse, j'ai essayer en suivant tes conseils d'adapter ce code mais ca ne fonctionne pas, il marchais bien sur un autre logiciel mais je n'ai plus ce programme et je n'ai pas réussi a modifier ce code pour mon besoin.
le but étant de mettre une MAJUSCULE devant (chaque mot) d'une liste de titre vidéos.
Liste plage (A1:AA) ce donnerai Ex:
le bal des maudits.avi serait remplacer par >>> Le Bal Des Maudits.avi
Te serait t'il possible svp de modifier le code en macro sub.
Merci pour ton aide, bonne journée.
Cdlt Ray
Merci pour la réponse, j'ai essayer en suivant tes conseils d'adapter ce code mais ca ne fonctionne pas, il marchais bien sur un autre logiciel mais je n'ai plus ce programme et je n'ai pas réussi a modifier ce code pour mon besoin.
le but étant de mettre une MAJUSCULE devant (chaque mot) d'une liste de titre vidéos.
Liste plage (A1:AA) ce donnerai Ex:
le bal des maudits.avi serait remplacer par >>> Le Bal Des Maudits.avi
Te serait t'il possible svp de modifier le code en macro sub.
Merci pour ton aide, bonne journée.
Cdlt Ray
NHenry
Messages postés
15190
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 février 2025
353
1 nov. 2016 à 11:19
1 nov. 2016 à 11:19
Cela change de la demande d'origine.
Le code présenté sert à changer les noms de fichiers, pas à être utilisé dans les cellules Excel.
La plage A1:AA n'est pas valide, je pense.
2 possibilités soit faire une macro qui change le contenu des cellules ou une fonction (appelée dans une cellule avec une formule) qui retourne le nom modifié.
Dans les 2 cas, il faut que tu isoles le code de mise en forme.
Ensuite, enregistre une macro et regarde comment Excel accède aux données.
Le code présenté sert à changer les noms de fichiers, pas à être utilisé dans les cellules Excel.
La plage A1:AA n'est pas valide, je pense.
2 possibilités soit faire une macro qui change le contenu des cellules ou une fonction (appelée dans une cellule avec une formule) qui retourne le nom modifié.
Dans les 2 cas, il faut que tu isoles le code de mise en forme.
Txt = F.Name Pos = InStrRev(Txt, ".") If Left(Txt, Len(Txt) - 4) = UCase(Left(Txt, Len(Txt) - 4)) Then Txt = Application.Proper(Left(Txt, Len(Txt) - 4)) & ".avi" ElseIf Txt = LCase(Txt) Then Var = UCase(Left(Txt, Pos - 1)) Txt = UCase(Left(Txt, Pos - 1)) & ".avi" End If
Ensuite, enregistre une macro et regarde comment Excel accède aux données.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut a vous,
Merci pour vos réponses, malgré mes efforts je n'y arrive pas, je ne comprends trop comment ca marche.
Mon programme est a base de codes trouver ici ou la puis j'arrive a mes débrouiller.
Pour la petite histoire, j'ai une liste de vidéos sur mon disque dur (H:\)
j'ai récupérer cette liste avec un code qui l'affiche dans excel 2007 puis a l'aide d'autres codes trouvés sur le net, j'essais d'adapter pour faire ce dont j'ai besoin.
J'ai lu et fait des essais mais là, c'est compliquer pour moi, 64 ans les neurones galère un peu.
Bon ce n'ai pas grave le but était d'améliorer la lisibilité d'affichage dans excel
Merci tout de même a vous, c'est sympa, je vous souhaite une très bonne après midi.
Cordialement Ray
Merci pour vos réponses, malgré mes efforts je n'y arrive pas, je ne comprends trop comment ca marche.
Mon programme est a base de codes trouver ici ou la puis j'arrive a mes débrouiller.
Pour la petite histoire, j'ai une liste de vidéos sur mon disque dur (H:\)
j'ai récupérer cette liste avec un code qui l'affiche dans excel 2007 puis a l'aide d'autres codes trouvés sur le net, j'essais d'adapter pour faire ce dont j'ai besoin.
J'ai lu et fait des essais mais là, c'est compliquer pour moi, 64 ans les neurones galère un peu.
Bon ce n'ai pas grave le but était d'améliorer la lisibilité d'affichage dans excel
Merci tout de même a vous, c'est sympa, je vous souhaite une très bonne après midi.
Cordialement Ray
NHenry
Messages postés
15190
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 février 2025
353
1 nov. 2016 à 15:11
1 nov. 2016 à 15:11
D'accord, comment sont affiché les noms des fichier et comment veux-tu les voir s'afficher ?
Ensuite, on peut voir pour adapter le code.
Ensuite, on peut voir pour adapter le code.
vieuxray
>
NHenry
Messages postés
15190
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 février 2025
Modifié par vieuxray le 1/11/2016 à 16:51
Modifié par vieuxray le 1/11/2016 à 16:51
Re NHenry,
Merci pour ton aide, c'est gentil a toi.
Je te joint le lien ci dessous pour avoir le fichier (98.2 Ko excel 2007 sous lequel je travaille, le fichier fonctionne très bien chez moi mais je n'ai surement pas tout bon.
http://www.cjoint.com/c/FKbpnzI0oPz
http://www.cjoint.com/c/FKbpnzI0oPz
(1) lance le code puis clic sur le rectangle bleu (Chargement des films) une fenêtre s'ouvre pour sélectionner le D-D ou se trouve les vidéos pour moi c'est (H:\ ) il ni a que des fichiers (.avi) sur le D-D
(2) puis le programme démarre en affichant sur la feuil1 plage (A4000) la liste des fichiers .avi
(3) puis une macro sub est appeler elle sert a effacer les noms d'extension des fichiers (.AVI)
(4) puis poursuit en affichant le poids de chaque fichier
(5) puis poursuit en affichant la durée de chaque fichier (Là c'est un peu plus long a s'afficher, je ne sais pas pourquoi ???)
j'ai mis pas mal de commentaires dans le programme en cours.
la macro sub que j'ai poster se trouve dans le module 3.
PS: Une macro Sub m'arrangerai bien si possible, je pourrai l'appeler en cas de besoin.
pour l'affichage voulu EX: dans la colonne (A) uniquement afficher sous ce format
La Guerre Des Boutons >>> chaque mot première lettre en majuscule
Le Bal Des Maudits
Etc Etc
Je remercie beaucoup pour ton aide, prends ton temps rien ne me presse.
Cdlt Ray
Merci pour ton aide, c'est gentil a toi.
Je te joint le lien ci dessous pour avoir le fichier (98.2 Ko excel 2007 sous lequel je travaille, le fichier fonctionne très bien chez moi mais je n'ai surement pas tout bon.
http://www.cjoint.com/c/FKbpnzI0oPz
http://www.cjoint.com/c/FKbpnzI0oPz
(1) lance le code puis clic sur le rectangle bleu (Chargement des films) une fenêtre s'ouvre pour sélectionner le D-D ou se trouve les vidéos pour moi c'est (H:\ ) il ni a que des fichiers (.avi) sur le D-D
(2) puis le programme démarre en affichant sur la feuil1 plage (A4000) la liste des fichiers .avi
(3) puis une macro sub est appeler elle sert a effacer les noms d'extension des fichiers (.AVI)
(4) puis poursuit en affichant le poids de chaque fichier
(5) puis poursuit en affichant la durée de chaque fichier (Là c'est un peu plus long a s'afficher, je ne sais pas pourquoi ???)
j'ai mis pas mal de commentaires dans le programme en cours.
la macro sub que j'ai poster se trouve dans le module 3.
PS: Une macro Sub m'arrangerai bien si possible, je pourrai l'appeler en cas de besoin.
pour l'affichage voulu EX: dans la colonne (A) uniquement afficher sous ce format
La Guerre Des Boutons >>> chaque mot première lettre en majuscule
Le Bal Des Maudits
Etc Etc
Je remercie beaucoup pour ton aide, prends ton temps rien ne me presse.
Cdlt Ray