Si 3 données dans une cellule alors

Jeremy992

XLDnaute Occasionnel
Bonjour le forum,

Je viens vers vous pour un peut d'aide ;)

J'aimerais que lorsqu'un cellule contient un certain nombre de lignes (séparé par un retour chariot) alors un pourcentage est rajouté aux ligne en question.


Exemple1, dans une cellule j'ai:

Tache 1 Alors écrire dans la même cellule Tache 1 50%
Tache 2 Tache 2 50%

Exemple2, dans une cellule j'ai:

Tache 1 Alors écrire dans la même cellule Tache 1 33%
Tache 2 Tache 2 33%
Tache 3 Tache 3 33%


Et ainsi de suite !

J'espère être assez précis (ce que je doute ^^), je vous joins donc un fichier explicatif
 

Pièces jointes

  • Jeremy 992.xlsx
    9.3 KB · Affichages: 21

Efgé

XLDnaute Barbatruc
Re : Si 3 données dans une cellule alors

Bonjour Jeremy992

Tu es bien pressé. Il est vrai que 38Minutes d'attente méritent bien un petit Up...:rolleyes:

Une proposition
VB:
Private Sub CommandButton1_Click()
Dim I&, X!, Prct$
Dim T As Variant, TData As Variant

With Sheets("Feuil1")
    TData = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(3))
End With

For I = LBound(TData, 1) To UBound(TData, 1)
    T = Split(TData(I, 1), Chr(10))
    If UBound(T) > 0 Then
        X = Format((1 / (UBound(T) + 1)) * 100, 0)
        Prct = "  " & X & "%"
        TData(I, 1) = Join(T, Prct & Chr(10)) & Prct
    End If
Next I

Sheets("Feuil1").Cells(2, 4).Resize(UBound(TData, 1), 1) = TData
End Sub

Cordialement
 

Pièces jointes

  • Jeremy(2).xlsm
    20.1 KB · Affichages: 20

Jeremy992

XLDnaute Occasionnel
Re : Si 3 données dans une cellule alors

Oui tu as raison, je suis désolé :/
Ton code marche très bien ! Seulement à chaque fois cela rajout le pourcentage, à la suite ! Pourrait on, à chaque exécution, supprimer les 3dernier caractère de chaque ligne ainsi que l'espace, puis écrire le pourcentage comme ton code le fait?

De plus, il faudrait ce soit applicable a toutes la feuille étant donné que j'ai un plage de cellule variable !
 
Dernière édition:

Jeremy992

XLDnaute Occasionnel
Re : Si 3 données dans une cellule alors

En fait je pense que le mieux serait de rechercher si "%", et seulement si, supprimer %+3 caractère avant de lancer ton code mais je ne sais pas comment y parvenir :/

De plus il faut que ce soit applicable a une plage variable ><
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Si 3 données dans une cellule alors

Bonsour®
:rolleyes: sans macro
en D2
Code:
=GAUCHE(SUBSTITUE(B2&CAR(10);CAR(10); " "&TEXTE(1/(1+NBCAR(B2)-NBCAR(SUBSTITUE(B2;CAR(10);"")));"0%")&" "&CAR(10));NBCAR(SUBSTITUE(B2&CAR(10);CAR(10); " "&TEXTE(1/(1+NBCAR(B2)-NBCAR(SUBSTITUE(B2;CAR(10);"")));"0%")&" "&CAR(10)))-1)

étendre la formule selon besoin...
:cool:
Capture.jpg
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    46.8 KB · Affichages: 15
  • Capture.jpg
    Capture.jpg
    46.8 KB · Affichages: 14

Jeremy992

XLDnaute Occasionnel
Re : Si 3 données dans une cellule alors

Bonjour Efgé,

Merci de ton aide précieuse ! Sur le principe, et dans ton exemple, cela marche superbement bien !

Seulement voila mon problème, je souhaite intégré ton code dans une macro qui fait un mise a jour de ma feuille via un bouton contrôle formulaire "MISE A JOUR" qui fait appelle a plusieurs macro pour faire tout un tas de chose.

Question 1 : comment faire?
Question 2: peut-on commence par supprimer tout les ..% présent puis ajouter les ..% voulu?

J'aurais du le préciser avant, je suis désoler :/
Du coups si cela est trop long a faire ou si tu en as marre je comprendrais absolument, et ce sera de ma faute ^^
 

Jeremy992

XLDnaute Occasionnel
Re : Si 3 données dans une cellule alors

Bonjour Modest Geedee,

Je sais que l'on peut le faire sans macro, mais cela demande une colonne vide a coté, hors je veux écraser mes données ;)
L'exemple de Efgé marche très bien cependant !
 

Efgé

XLDnaute Barbatruc
Re : Si 3 données dans une cellule alors

Re
....Seulement voila mon problème, je souhaite intégré ton code dans une macro qui fait un mise a jour de ma feuille via un bouton contrôle formulaire "MISE A JOUR" qui fait appelle a plusieurs macro pour faire tout un tas de chose.

Question 1 : comment faire?

Tu comprendras aisément que je ne peux pas répondre à ça....

Je pense avoir répondu à la question de base.
Je ne peux que te conseiller d'ouvrir un nouveau sujet, en présentant ce qu tu as comme souirce et ce que tu veux comme résultat (avec peut être quelques explications sur le pourquoi).

Bon courage pour la suite

Cordialement
 

Discussions similaires