Besoin d'aide pour affiché du texte - Forum Excel

A voir également:Besoin d'aide pour affiché du texteAfficher un texte au survol de la souris - Conseils pratiques - HTML Afficher du texte javascript - Conseils pratiques - Javascript Excel formule s'affiche en texte - Forum - Excel Comment afficher un text apres image PHP ✓ - Forum - PHP Afficher un texte au passage de la souris ✓ - Forum - Programmation

Bonjour,

Je cherche une formule qui peux me traduire ceci :
=SI( Il y a du texte dans la colonne A alors tu affiches dans la colonne D le texte correspondant au texte en A (entourer en bleu); Sinon tu mets rien)

Je n'arrive pas a trouver

Merci d'avance


Forum

A voir également:Besoin d'aide pour affiché du texteAfficher un texte au survol de la souris - Conseils pratiques - HTML Afficher du texte javascript - Conseils pratiques - Javascript Excel formule s'affiche en texte - Forum - Excel Comment afficher un text apres image PHP ✓ - Forum - PHP Afficher un texte au passage de la souris ✓ - Forum - Programmation

Web: www.shapebootstrap.net

44 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

si j'ai bien compris
=SI(A1<>"";B1;"") formule à entrer en D1... ou D2 selon ton cercle rouge?

Reply
réponses:
  • auteur

  • auteur

    Oui voila c'est presque ça,

    La en A5 il y a du texte donc il prend toute les ecritures ( entourer en bleu) et les mets dans la même cellule D1.
    Sauf qu'en A10 on retrouve du texte donc til faudrait qu'il prenne le texte de B10:B18 et le mette dans la cellule D10;
    D

  • auteur

    ben comme ton autre projet, je sais le faire en vba mais pas en formules classiques
    à voir si personne n'a plus simple et si tu veux utiliser la vba

  • auteur

    ma réponse s'arrête après D10, petit faute de frappe oups....

  • auteur

    D'accord, donc c'est possible d'après vous mais en passant par la VBA le seul souci c'est que je maîtrise pas du tout mais alors pas du tout ça.

  • auteur

    quel événement déclencheur va faire que la cellule de la colonne D va recevoir les valeurs de la colonne B?

  • auteur

    Qu'il y ai un Numéro dans la cellule de la colonne A

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

clic droit sur l'onglet de la feuille à programmer -> visualiser le code
coller ça :
Private Sub Worksheet_Change(ByVal Target As Range) Dim dernlig, i, j As Integer      dernlig = Worksheets("NOM DE LA FEUILLE").Range("B" & Rows.Count).End(xlUp).Row 'défition de la colonne de commande If Not Intersect(Target, Range("A1:A" & dernlig)) Is Nothing Then     Target.Offset(0, 3) = Target.Offset(0, 1)     j = 1     For i = 5 To dernlig         If Target.Offset(j, 0) = "" Then             Target.Offset(0, 3) = Target.Offset(0, 3) & " " & Target.Offset(j, 1)             j = j + 1         Else             Exit For         End If     Next i End If   End Sub


Edit : j'avais fait une faute de frappe en déclarant la variable dernlig que j'ai corrigé

Reply
réponses:
  • auteur

  • auteur

    ligne 9 j'ai écris for i = 5
    j'ai mis 5 parce que ta capture commence ligne 5
    la valeur de i doit correspondre au numéro de la première ligne que tu veux contrôler

  • auteur

    Alors j'ai fait la manipulation mais comment on fait pour excuter cette tache en faite^^, J'ai bien coller les code en modifiant le nom de la feuille.
    Mais pour que la macros se lance, il faut appuyer sur un botton quelconque?
    je suis vraiment nul :)

  • auteur

    l'évènement déclencheur de la routine est donc le remplissage d'une cellule de la colonne A jusqu'a la dernière ligne de la colonne B

  • auteur

    ecrit un truc colonne A et le code écrira colonne D tout ce qui se trouve colonne B entre ce que tu viens d'écrire et la prochaine cellule remplie en A avec un espace entre chaque valeur
    cet espace est modifiable ligne 11 : & " " &

  • auteur

    enlève les <ital>
    corrige la faute de frappe sur la 2eme ligne : Dim dernlign

  • auteur

    La j'ai vraiment corriger comme il faut.

  • auteur

    non reprend mon code plus haut il est sans fautes ça ira plus vite ;)

  • auteur

    Maintenant j'ai ça, je comprend pas trop pourquoi

  • auteur

    c'est normal tu dois avoir un symbole "play" sur la barre d'outil au dessus de ta fenêtre d'éditeur VBA clic dessus pour que la routine se déroule entièrement
    il faut que approuve le projet vba donc :
    Fichier->option->centre de gestion de la confidentialité->paramètre du centre de gestion de la confidentialité->parametres des macro-< cocher accés approuvé dau modele d'objet du projet vba

    ensuite ça devrait être bon pour toi

  • auteur

    Alors j'ai bien fait la manipulation mais j'ai tjrs la meme ligne de surligné en jaune

  • auteur

    tu dois avoir un paramètre qui bloque les macros

    enregistre, ferme et rouvre ton fichier peut être
    sinon active l'onglet développeur fichier>option>personnaliser le ruban

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,


Une fois que caillou à écrit dans A5 on obtient la concaténation, mais que se passe t il quand on va écrire ensuite en A10 ?

Reply
réponses:
  • auteur

    moi je sais juste que quand j'ecris en A5 j'ai ca qui s'affiche :

  • auteur

    cailloux quand tu as cette ligne jaune qui s'affiche, si tu clic sur l'icone lecture dans la barre de menu (ou que tu fais F8 pour un défilé au pas a pas) que se passe t'il?

  • auteur

    bien vu michel, je n'y ai pas pensé... il faudrait remonter la colonne pour remettre à jour la cellule D correspondant à la cellule A supérieure remplie... je vais avoir besoin d'y refléchir un peu...
    en attendant j'ai rajouté une condition qui met à jour l'effacement de valeur d'une cellule en A... :

    Private Sub Worksheet_Change(ByVal Target As Range)     Dim derlig, i, j As Integer 'recherche de la derniere ligne colonne B         dernlig = Worksheets("feuil2").Range("B" & Rows.Count).End(xlUp).Row 'défition de la colonne de commande     If Not Intersect(Target, Range("A1:A" & dernlig)) Is Nothing Then         If Target <> "" Then 'si la cellule n'est pas vide             Target.Offset(0, 3) = Target.Offset(0, 1)             j = 1             For i = 5 To dernlig                 If Target.Offset(j, 0) = "" Then 'verifie que la colonne A n'est pas remplie                     Target.Offset(0, 3) = Target.Offset(0, 3) & " " & Target.Offset(j, 1)                     j = j + 1                 Else                     Exit For 'si qqchose en A alors stop                 End If             Next i         Else             Target.Offset(0, 3) = "" 'si la cellule de la colonne A est vide n'ecrit rien en D         End If     End If   End Sub

  • auteur

    Alors quand j'appuis sur F8 soit au total 6x







  • auteur

    Donc la c'est bon ca fonction mais que pour la ligne A5 mais pas pour la A10

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Comment le mettre en marche puique visiblement il est en arrêt^^

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Target.Offset(0,3)=Target.Offset(0,1)

ça veut dire quoi en faite?

Reply
réponses:
  • auteur

    target c'est la cellule qui a changé qui sert de reference
    0 c' la ligne donc onlui dit de rester sur la ligne de la cellule A qui tu as rempli ,
    3 c'est la colonne donc on demande d'aller 3 colonne plus loin soit dans notre cas la colonne D
    = s'entend reçois en vba dans ce cas
    donc D reçois cellule de référence sans changer de ligne décalé d'une colonne qui donne B

    mode arrêt c'est quand on clic sur pause en théorie..

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Pour faire un point de la chose,

La j'ai ma colonne A avec déjà les valeurs, pour que la macros fonction je dois effacé un chiffre dans la cellule ( par exemple A5) et réecrire le nombre et la la macros fonctionne.
Sauf que je dois le faire sur toute les cellule remplit de la colonne A.
Est-ce qu'il y a une methode pour qu'une fois les valeurs copier colle dans la colonne A la macros fasse out d'un coup?

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

justement :

Private Sub Worksheet_Change(ByVal Target As Range)     Dim derlig, i, j As Long 'recherche de la derniere ligne colonne B         derlig = Worksheets("feuil2").Range("B" & Rows.Count).End(xlUp).Row 'défition de la colonne de commande     If Not Intersect(Target, Range("A1:A" & derlig)) Is Nothing Then         If Target <> "" Then 'si la cellule n'est pas vide             For i = 1 To derlig                 If Worksheets("Feuil2").Range("A" & i) <> "" Then                     Worksheets("Feuil2").Range("D" & i) = Worksheets("Feuil2").Range("B" & i)                                          For j = i + 1 To derlig                         If Worksheets("Feuil2").Range("A" & j) = "" Then 'verifie que la colonne A n'est pas remplie                             Worksheets("Feuil2").Range("D" & i) = Worksheets("Feuil2").Range("D" & i) & " " & Worksheets("Feuil2").Range("B" & j)                         Else                             Exit For 'si qqchose en A alors stop                             i = j - 1                         End If                     Next j                 Else                 End If             Next i         Else             Target.Offset(0, 3) = "" 'si la cellule de la colonne A est vide n'ecrit rien en D         End If     End If   End Sub


ça c'est le code qui prends en compte la remarque de michel
du coup ça boucle sur toute la colonne à chaque nouvelle entrée colonne A et sans le vouloir au départ ça résout la mise à jour de ton fichier : rentre une valeur en A et tout se mettre à jour


Reply
réponses:
  • auteur

    alors la franchement merci :D
    maintenant si je veux faire la meme chose par rapport a un Tableau croisé dynamique j'ai juste a changer le ''feuil3" par " tableau croisé dynamique 1" non ?
    ou faut changer autre par aussi ?

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Private Sub Worksheet_Change(ByVal Target As Range)     Dim derlig, i, j As Integer 'recherche de la derniere ligne colonne B         derlig = Worksheets("feuil3").Range("B" & Rows.Count).End(xlUp).Row 'défition de la colonne de commande     If Not Intersect(Target, Range("A1:A" & derlig)) Is Nothing Then         Target.Offset(0, 3) = "" 'si la cellule de la colonne A est vide n'ecrit rien en D         For i = 1 To derlig             If Worksheets("Feuil3").Range("A" & i) <> "" Then                 Worksheets("Feuil3").Range("D" & i) = Worksheets("Feuil3").Range("B" & i)                                  For j = i + 1 To derlig                     If Worksheets("Feuil3").Range("A" & j) = "" Then 'verifie que la colonne A n'est pas remplie                         Worksheets("Feuil3").Range("D" & i) = Worksheets("Feuil3").Range("D" & i) & " " & Worksheets("Feuil3").Range("B" & j)                     Else                         Exit For 'si qqchose en A alors stop                         i = j - 1                     End If                 Next j             Else             End If         Next i     End If   End Sub 

j'ai trouvé une coquille cette fois c'est bon que tu effaces que tu rajoute ou que tu fasse n'importe quoi ça doit jouer correctement !

comment ça "par rapport à un TCD" ?

Reply
réponses:
  • auteur

  • auteur

    En faite sur la feuil3 c'est une copie d'un tableau croisé dynamique en feuil2,
    Alors est-ce que c'est possible de faire la meme manipulation mais pour le tableau croisé dynamique ?

  • auteur

    si la configuration est la même oui il suffit de changer le nom de la feuille et éventuellement les colonnes si ce ne sont pas les mêmes

  • auteur

    comment ca la meme configuration

  • auteur

    met une capture du tableau que tu veux programmé je te dirais

  • auteur

    c'est ca mon tableau

  • auteur

    Je pense qu'il manque un truc....
    NON?

  • auteur

    il ne faut pas mettre le nom du tableau mais le nom de la feuille et

    If Not Intersect(Target, Range("A4:A" & derlig)) Is Nothing Then
    il faut changer le A5 en A4 et logiquement ça devrait tourner

  • auteur

    Peux tu me montrer la bonne ligne a ecrire parce que ca ne fonctionne pas, je dois mal ecrire sans doute

  • auteur

    Merci beaucoup de ton aide, tout fonctionne a la perfection, vous avez réussi a me donner envie de me mettre à VBA !!!
    Un bouquin d'aide et de cours est c'est parti :D

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

re,
1/si tu veux tout faire en 1 fois, il vaudrait peut-^tre mieux passer par un bouton que par une événementielle

2/tu n'as plus de ligne vide entre 2 numéros ?

3/efface t'on la colonne B une fois terminée la concaténation en Colonne D

4/que fais t'on alors des numéros en colonne D ?

5/Combien de numéros en colonne A? suivant le nombre on aura des techniques différentes;
de m^me, quel est le nombre maximum de charac dans la colonne B par numéro?

c'e sont des indications qu'il aurait été indispensable de préciser avant de demander de l'aide que l'on bosse par formule ou VBA

au besoin:
Mettre le classeur sans données confidentielles en pièce jointe sur 
https://mon-partage.fr/
Puis faire un clic « copier le raccourci » et lecoller dans votre message

Dans l’attente


Reply

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed