Microsoft 365 symboles dans listes de données

perrmi

XLDnaute Occasionnel
bonjour a vous tous
le soleil est de la partie:)
petit problème a la suite de mon précédent post
un tableau avec une liste de données.
le symboles ? représentant une caractéristique n'est pas coller aux noms mais a la ligne suivante.
j'aimerais juste supprimer cette ligne et accoler le symbole au nom de la ligne précédente.
un fichier joint sera plus explicite
encore merci a vous de voir les possibilité
macro ou formules
perrmi
 

Pièces jointes

  • symbole dans liste de données.xlsx
    11.4 KB · Affichages: 8

JHA

XLDnaute Barbatruc
Bonjour à tous,

Avec les données en mode tableau, 2 colonnes supplémentaires et power query pour recopier le tableau sur une autre feuille.

Si tu ne veux pas utiliser Power Query, tu peux copier la colonne 22 et collage spécial valeur
Ensuite tu filtres les vides de la colonne 22 et tu les supprimes.
Tu peux supprimer également la colonne 2 et la colonne 14

Mais bon je préfère Power Query, tu auras toujours l'original sous la main.

JHA
 

Pièces jointes

  • symbole liste de données.xlsx
    23 KB · Affichages: 3
Dernière édition:

perrmi

XLDnaute Occasionnel
Bonjour à tous,

Avec les données en mode tableau, 2 colonnes supplémentaires et power query pour recopier le tableau sur une autre feuille.

Si tu ne veux pas utiliser Power Query, tu peux copier la colonne 22 et collage spécial valeur
Ensuite tu filtres les vides de la colonne 22 et tu les supprimes.
Tu peux supprimer également la colonne 2 et la colonne 14

Mais bon je préfère Power Query, tu auras toujours l'original sous la main.

JHA
Oui merci a vous
JE VAIS essayer cette procédure
je pensais qu'une procédure plus simple existait genre formule précédente mais je vois que cela n'est pas évident.
encore merci
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Tu peux également utiliser la fonction joindre.texte() au lieu de index
VB:
=JOINDRE.TEXTE(;VRAI;SI(Tableau1[Colonne14]=$O2;Tableau1[Colonne2];""))
et tu reprends la procedure copier coller, suppression des lignes vides de la colonne 1

JHA
 

Pièces jointes

  • symbole liste de données bis.xlsx
    23.5 KB · Affichages: 3

job75

XLDnaute Barbatruc
Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim P As Range, i&, j&
Application.ScreenUpdating = True
Set P = [A1].CurrentRegion.Resize(, 13)
With [A38].Resize(P.Rows.Count, 13) 'à adapter
    .Value = P.Value 'copie les valeurs
    For i = 2 To .Rows.Count
        If Len(.Cells(i, 2)) = 1 Then
            .Cells(i - 1, 2) = .Cells(i - 1, 2) & .Cells(i, 2)
            For j = i + 1 To .Rows.Count
                .Rows(j - 1) = .Rows(j).Value 'décale vers le haut
            Next j
            .Rows(j - 1).ClearContents
        End If
    Next i
End With
End Sub
Elle se déclenche quand on sélectionne une cellule quelconque.

Bonjour JHA.
 

Pièces jointes

  • symbole liste de données.xlsm
    19 KB · Affichages: 5

perrmi

XLDnaute Occasionnel
Bonjour à tous,

Tu peux également utiliser la fonction joindre.texte() au lieu de index
VB:
=JOINDRE.TEXTE(;VRAI;SI(Tableau1[Colonne14]=$O2;Tableau1[Colonne2];""))
et tu reprends la procedure copier coller, suppression des lignes vides de la colonne 1

JHA
Je pensais a une chose
vu que votre premiere cellule fonctionne bien
il suffit pour les tableaux suivant celui que je vous ai fait parvenir qui cause probleme
de supprimer les lignes avec les symboles vu que l'on les a avec le premier tableau0
donc trouver une formule pour supprimer ces lignes embarassantes
encore merci
perrmi
 

perrmi

XLDnaute Occasionnel
Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim P As Range, i&, j&
Application.ScreenUpdating = True
Set P = [A1].CurrentRegion.Resize(, 13)
With [A38].Resize(P.Rows.Count, 13) 'à adapter
    .Value = P.Value 'copie les valeurs
    For i = 2 To .Rows.Count
        If Len(.Cells(i, 2)) = 1 Then
            .Cells(i - 1, 2) = .Cells(i - 1, 2) & .Cells(i, 2)
            For j = i + 1 To .Rows.Count
                .Rows(j - 1) = .Rows(j).Value 'décale vers le haut
            Next j
            .Rows(j - 1).ClearContents
        End If
    Next i
End With
End Sub
Elle se déclenche quand on sélectionne une cellule quelconque.

Bonjour JHA.
alors la c'est le must
félicitation
si par contre j'ai 5 onglets de données.
la macro marche pour les 5 pages ?
le mieux pour moi serait d'insérer un bouton de formulaire pour la macro par page.
ou 1 seul bouton pour les 5 pages
est ce possible?
encore merci de prendre un peu de votre temps.
 

job75

XLDnaute Barbatruc
Vous pouvez toujours remplacer la macro évènementielle par une macro classique affectée au bouton.

Si elle doit servir pour toutes les feuilles il faut une boucle sur les feuilles :
VB:
Sub Concat()
Dim w As Worksheet, P As Range, i&, j&
Application.ScreenUpdating = True
For Each w In Worksheets
    Set P = w.[A1].CurrentRegion.Resize(, 13)
    With w.[A38].Resize(P.Rows.Count, 13) 'à adapter
        .Value = P.Value 'copie les valeurs
        For i = 2 To .Rows.Count
            If Len(.Cells(i, 2)) = 1 Then
                .Cells(i - 1, 2) = .Cells(i - 1, 2) & .Cells(i, 2)
                For j = i + 1 To .Rows.Count
                    .Rows(j - 1) = .Rows(j).Value 'décale vers le haut
                Next j
                .Rows(j - 1).ClearContents
            End If
        Next i
    End With
Next w
End Sub
 

Discussions similaires

Réponses
7
Affichages
362

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87