Copier mot en majuscule d'une cellule vers une autre

Résolu
r0man0 Messages postés 41 Date d'inscription vendredi 3 décembre 2010 Statut Membre Dernière intervention 11 février 2014 - 9 oct. 2012 à 14:10
r0man0 Messages postés 41 Date d'inscription vendredi 3 décembre 2010 Statut Membre Dernière intervention 11 février 2014 - 10 oct. 2012 à 16:02
Bonjour, j'ai un soucis, je dois récupérer certaines informations en majuscules parmi d'autre en minuscule, se trouvant toutes dans une cellule, par exemple j'ai en D3 "RIORIORIORIO/blablabla/bibibibi/GUGUGUGU/...etc..." sachant que les infos entre slash sont en nombre variable il peut y en avoir 5 comme 12, 10, 11, etc...
Donc pour résumer j'aimerai pouvoir copier les mots en majuscule de la cellule concernée vers une autre, et ceci pour toute ma plage de cellules non-vides.

13 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2012 à 12:02
Allez, va (on m'appelle à table et je veux en finir) ===>>
Exemple bâclé :
Dim plage As Range, c As Range, i As Long
Set plage = Range("A:A").SpecialCells(xlCellTypeConstants)
For Each c In plage
  titi = Split(c.Value, "/")
  ou = 5
  For i = 0 To UBound(titi)
    If UCase(titi(i)) = titi(i) Then
      Cells(c.Row, ou).Value = titi(i)
      ou = ou + 1
    End If
  Next
Next

Remplira autant de colonnes que nécessaire (pas seulement "E" et "F").
Dur dur ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 oct. 2012 à 14:37
Bonjour,
A/.
A laquelle ces deux questions devons-nous répondre (pas toutes, hein ...une seule, selon la règle) ?
1) savoir extraire d'une chaîne séparées par des "/" les seules sous-chaines en majuscules ?
2) savoir parcourir toutes les cellules d'une plage ?
3) savoir mettre dans une cellule le contenu d'une variable ?
B/.
Dans la foulée : tu n'as pas non plus précisé :
- sous quelle forme (nouvelle chaîne) devait être complétée la nouvelle cellule
- quelles sont (et dans quelle ordre) les cellules correspondant à :
copier les mots en majuscule de la cellule concernée vers une autre

Il est malheureux d'avoir à te poser ces questions-là !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 oct. 2012 à 17:55
Tu pourrais regarder dans ton aide les mots suivants
Split
UCase


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
r0man0 Messages postés 41 Date d'inscription vendredi 3 décembre 2010 Statut Membre Dernière intervention 11 février 2014
10 oct. 2012 à 08:11
Bonjour ucfoutu et MPi, et bien je crois avoir trouvé en semblant de réponse comme tu me l'as si gentillement précisé MPi, j'ai pensé à regarder mon aide, après coup, j'arriverai peut-être enfin à commencer par là...

Désolé ucfoutu je pensais avoir été clair, mais en faîte c'est toujours clair que pour moi, je devrais me poser des questions


Donc pour résumer j'aimerai pouvoir copier les mots en majuscule de la cellule concernée vers une autre, et ceci pour toute ma plage de cellules non-vides.


Et bien c'est surtout que j'aimerai arriver à extraire que mes infos en majuscule vers deux autres cellules, un peu comme la fonction convertir dans la barre d'outils de données, mais au lieu d'utiliser des séparateurs pour spliter ma ligne d'info faire la discrimination sur les majuscules.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2012 à 08:24
Ce que tu dis n'est toujours pas vraiment clair, malgré les "précisions" que tu dis apporter.
Juge par toi-même :
extraire que mes infos en majuscule vers deux autres cellules

comparé à :
sachant que les infos entre slash sont en nombre variable il peut y en avoir 5 comme 12, 10, 11, etc...

La seule aide, dans ces conditions là, qui peut être apportée est celle du traitement seul d'une chaîne. A toi de voir le reste (tes "répartitions").
Exemple simple :
toto = "RIORIORIORIO/blablabla/bibibibi/GUGUGUGU/aaaa"
titi = Split(toto, "/")
For i = 0 To UBound(titi)
 If UCase(titi(i)) = titi(i) Then
   tata = tata & vbCrLf & titi(i)
 End If
Next
tata = Mid(tata, 2)
MsgBox tata

A toi d'adapter, de ne pas "alimenter" une variable tata, mais tes cellules (lesquelles ? On ne sait toujours pas).
Voilà !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
r0man0 Messages postés 41 Date d'inscription vendredi 3 décembre 2010 Statut Membre Dernière intervention 11 février 2014
10 oct. 2012 à 09:50
j'ai essayé quelque-chose en modifiant la macro que j'ai élaboré avec l'enregistrement et l'aide je te présente le code, j'ai voulu supprimer toutes les cellules qui ne contenait pas de majuscule, or il se trouve que j'ai des infos avec comme première lettre une majuscule, je suis un peu embêté.
derligne = Range("D65535").End(xlUp).Row
Range("E1:O" & derligne).ClearContents
Application.ScreenUpdating = False
    Range("D1:D" & derligne).Select
    selection.TextToColumns Destination:=Range("E1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="/", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
        1)), TrailingMinusNumbers:=True

For Each cel In Range("E1:O" & derligne)
If UCase(cel) <> cel Then cel.Delete Shift:=xlToLeft
Next cel
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2012 à 10:12
Il y a plus qu'un abime entre ton premier et ton dernier message !

Bonne chance !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
r0man0 Messages postés 41 Date d'inscription vendredi 3 décembre 2010 Statut Membre Dernière intervention 11 février 2014
10 oct. 2012 à 11:35
Re-Bonjour ucfoutu, je suis revenue sur mes pas, j'ai utilisé ce que tu m'as gentillement posté ça à l'air de bien fonctionné je te post ton code avec ma modeste modif.

MDP = Sheets("Feuil1").Range("D1:D" & Feuil1.Range("D" & Application.Rows.Count).End(xlUp).Row)
SP = Split(MDP, "/")
For i = 0 To UBound(SP)
If UCase(SP(i)) = SP(i) Then
RES = RES & vbCrLf & SP(i)
End If
Next


en faites j'ai bien réalisé qu'il te manquait quelque-chose, en effet je souhaiterais que le résultat de ce code soit envoyé vers la colonne "E" et "F"
0
r0man0 Messages postés 41 Date d'inscription vendredi 3 décembre 2010 Statut Membre Dernière intervention 11 février 2014
10 oct. 2012 à 11:37
Il y a plus qu'un abime entre ton premier et ton dernier message !

Bonne chance !


Oui, je voulais trouver une autre méthode, qui me semblait plus simple à réaliser...mais je me suis trompé.
Merci de ton aide.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2012 à 11:39
On y arrive lentement mais sûrement (surtout lentement).
1) vers les colonnes E et F de la même ligne ?
2) seulement ces deux colonnes ? Quid si plus de 2 sous-chaînes et majuscules ?



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
10 oct. 2012 à 11:43
MDP ne peut pas être toute ta colonne.
Il te faut boucler chaque cellule et faire le Split sur le texte d'une seule cellule. Ensuite, tu copies le résultat dans la cellule E et/ou F de la même ligne (dans la boucle)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 oct. 2012 à 11:51
Bonjour, MPI,
C'est un peu "effrayant".... hein ?
Je vais le lui écrire, son code, mais pas avant qu'il ne nous ait montré (au moins) sa capacité à être complet et précis dans ses "explications". C'est un minimum et cela ne demande aucune connaissance en développement ... juste la capacité à s'exprimer.
J'écrirai alors son code, surtout pour mettre un terme à cette discussion


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
r0man0 Messages postés 41 Date d'inscription vendredi 3 décembre 2010 Statut Membre Dernière intervention 11 février 2014
10 oct. 2012 à 16:02
Excusez moi de vous avoir fait perdre votre temps, mais merci quand même pour cette belle preuve d'abnégation, j'espère que je ne susciterais plus votre désarroi et mettrai un terme à cette discussion comme me la fait remarquer ucfoutu.
Je sais être reconnaissant, c'est pour cela que je n'en tiendrai pas rigueur,
encore merci pour tout, et à l'avenir je souhaiterai être moins enclin à la charité, en espérant que moi même je sois plus érudit sur le sujet.
Cordialement,
R0man0.
0
Rejoignez-nous