Besoin d'aide pour affiché du texte

Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   -  
Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   -
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


A voir également:

9 réponses

fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
ma réponse s'arrête après D10, petit faute de frappe oups....
0
fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59 > Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention   59 > Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention  
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   59 > Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention  
 
Alors quand j'appuis sur F8 soit au total 6x






0
Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Target.Offset(0,3)=Target.Offset(0,1)

ça veut dire quoi en faite?
0
fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   59 > Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
comment ca la meme configuration
0
Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention  
 
Je pense qu'il manque un truc....
NON?

0
fabien25000 Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   59 > Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention  
 
met une capture du tableau que tu veux programmé je te dirais
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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