Besoin d'aide pour affiché du texte

Fermé
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020 - 14 sept. 2018 à 09:59
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020 - 17 sept. 2018 à 08:43
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


9 réponses

fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
14 sept. 2018 à 10:06
si j'ai bien compris
=SI(A1<>"";B1;"") formule à entrer en D1... ou D2 selon ton cercle rouge?
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 10:18
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
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 10:19
ma réponse s'arrête après D10, petit faute de frappe oups....
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59 > Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 10:24
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
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 10:28
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.
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
14 sept. 2018 à 11:02
quel événement déclencheur va faire que la cellule de la colonne D va recevoir les valeurs de la colonne B?
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
Modifié le 14 sept. 2018 à 11:34
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é

0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
14 sept. 2018 à 11:28
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
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 11:46
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 :)
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 11:50
Voila ou j'en suis la
[
https://img-19.ccm2.net/-okj0aKXnq698LB-0cCyEBA9ByM=/7347202f66ca4304b3473b4916921892/tmp/Capture4.PNG
|fancy]
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
Modifié le 14 sept. 2018 à 11:51
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 : & " " &
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59 > Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
Modifié le 14 sept. 2018 à 11:54
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 305
Modifié le 14 sept. 2018 à 14:26
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 ?

0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 14:28
moi je sais juste que quand j'ecris en A5 j'ai ca qui s'affiche :
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59 > Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 14:55
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?
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
14 sept. 2018 à 14:50
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
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
Modifié le 14 sept. 2018 à 15:05
Alors quand j'appuis sur F8 soit au total 6x






0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 15:16
Donc la c'est bon ca fonction mais que pour la ligne A5 mais pas pour la A10
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 14:38
Comment le mettre en marche puique visiblement il est en arrêt^^
0

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

Posez votre question
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 14:45
Target.Offset(0,3)=Target.Offset(0,1)

ça veut dire quoi en faite?
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
14 sept. 2018 à 15:18
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..
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 15:26
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?
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
Modifié le 14 sept. 2018 à 15:51
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


0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
Modifié le 14 sept. 2018 à 16:12
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 ?
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
14 sept. 2018 à 16:02
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" ?
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 16:12
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 ?
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59 > Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 16:15
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
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 16:22
comment ca la meme configuration
0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 16:42
Je pense qu'il manque un truc....
NON?

0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59 > Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
14 sept. 2018 à 16:50
met une capture du tableau que tu veux programmé je te dirais
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 305
Modifié le 14 sept. 2018 à 17:17
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


0