Copier mot en majuscule d'une cellule vers une autre [Résolu]

Signaler
Messages postés
41
Date d'inscription
vendredi 3 décembre 2010
Statut
Membre
Dernière intervention
11 février 2014
-
Messages postés
41
Date d'inscription
vendredi 3 décembre 2010
Statut
Membre
Dernière intervention
11 février 2014
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
230
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
230
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
41
Date d'inscription
vendredi 3 décembre 2010
Statut
Membre
Dernière intervention
11 février 2014

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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
230
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
Messages postés
41
Date d'inscription
vendredi 3 décembre 2010
Statut
Membre
Dernière intervention
11 février 2014

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
230
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
Messages postés
41
Date d'inscription
vendredi 3 décembre 2010
Statut
Membre
Dernière intervention
11 février 2014

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"
Messages postés
41
Date d'inscription
vendredi 3 décembre 2010
Statut
Membre
Dernière intervention
11 février 2014

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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
230
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
230
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
Messages postés
41
Date d'inscription
vendredi 3 décembre 2010
Statut
Membre
Dernière intervention
11 février 2014

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.