Afficher des valeurs

Bonjour,

Je fais appel à vous car j'aurais besoin d'aide(encore novice en VBA)

Savez-vous comment je pourrais afficher des valeurs précises d'une colonne dans une autre colonne ? Je vais essayer de vous montrer ça en image :

image

En bref, je voudrais que tous les KO + le nom puissent s'afficher dans la colonne G, permettant de faire ressortir ces lignes.

J'ai commencé mon code :

Sub one()
Columns("H:I").Select

End Sub

Mais je ne vois pas malgré mes recherches comment sélectionner juste les lignes avec les KO pour les placer dans d'autre cases.

J'aimerais juste savoir quelles démarches je pourrais faire.

Voilà merci d'avance

Bonjour Adjay, le forum,

Connais-tu les TCD (Tableau Croisé dynamique) ?

Un peu de lecture qui devrait t'aider:

  1. https://www.excel-pratique.com/fr/astuces/tableau-structure
  2. https://www.excel-pratique.com/fr/formation-excel/tableau-croise-dynamique
10classeur1.xlsx (13.03 Ko)

Cordialement

Oui mais je n'aurais pas pensé à utiliser cela.

Du coup faire ça sur VBA n'est pas possible (ou trop compliqué?)

Je vais essayer de faire un TCD mais j'espère que peu importe le nombre de lignes du tableau cela fonctionnera toujours.

Merci pour ta réponse :)

Re,

Merci pour le retour,

Je vais essayer de faire un TCD mais j'espère que peu importe le nombre de lignes du tableau cela fonctionnera toujours.

Il est fait pour ça....

On peut actualiser le TCD avec une macro....elle se lance à chaque modif.dans le tableau.

18classeur1.xlsm (37.12 Ko)

Cordialement,

Bonjour Adjay,

Comme illustré par xorsankukai, de nombreuses voies permettent d'accéder au même résultat, ou du moins à un résultat proche.
Les TCD ou tableaux structurés sont en effet particulièrement utiles.

Si tu souhaites réaliser cette opération en VBA, voici un code commenté pour démarrer (le fichier est en PJ) :

Sub filtrerKO()
    Dim ws As Worksheet
    Dim n As Integer, i As Integer, c As Integer

    ' Nom simplifié de la feuille de travail
    Set ws = ThisWorkbook.Sheets("Feuil1")

    ' On remet à zéro au préalable le tableau des "KO"
    ws.Columns("D:E").ClearContents
    ws.Range("D1").Value = "Nom"
    ws.Range("E1").Value = "KO"

    ' Nombre de lignes du tableau à parcourir
    If ws.Range("A2").Value = "" Then
        MsgBox ("Tableau vide")
    Else
        n = ws.Range("A1").End(xlDown).Row - 1
        ' Initialisation d'un compteur
        c = 2
        ' Boucle pour tester, ligne à ligne, le statut OK/KO
        For i = 1 To n
            If ws.Range("B" & i).Value = "KO" Then
            ' Si le statut est KO, on copie dans les colonnes D et E
                ws.Range("A" & i & ":B" & i).Copy ws.Range("D" & c & ":E" & c)
                c = c + 1
            End If
        Next i
    End If

End Sub

Là encore, plein d'options possibles, et celui présenté n'est qu'une proposition qui te permettra de découvrir une première façon de faire.

14adjay.xlsm (18.61 Ko)

Re,

une variante...

La macro s’exécute à chaque modif dans le tableau1

20classeur1.xlsm (20.54 Ko)

Cordialement,

D'accord merci.

J'ai repris le code comme cela :

image

Je ne connais pas très bien ces codages mais j'ai pensé qu'il fallait remplacer par le nom de l'onglet pour renvoyer au tableau qui peut se modifier ?

EDIT : je n'avais pas vu vos messages avant de poster le mien, je regarde cela tout de suite merci !!!

Merci à vous

Du coup, j'ai regardé. Je préfère la version TCD pour mon application pour l'instant, par contre je n'arrive pas à utiliser le code en plus :/ sur mon fichier.

J'essaie d'intégrer la fiche Excel avec les données (j'ai tenté un "worksheet") mais ça ne fonctionne pas.

Concernant le code VBA, je vais essayer de le comprendre déjà, je reconnais des choses que j'ai étudié mais je n'aurais pas pu créer ça comme ça ahah

Merci beaucoup pour votre aide :)

Bien à vous!

Le premier fichier de xorsankukai fonctionne parfaitement, quel est le problème ?

Si vous devez reprendre les éléments du fichier dans un autre, veillez à bien insérer le code dans l'évènement change de la bonne feuille (worksheet) et adapter les noms du tableau ("Tableau1") et du TDC ("Tableau croisé dynamique1") si besoin.

N'hésitez pas à nous partager ce fichier pour qu'on puisse plus facilement vous aider.

Re,

Merci pour le retour,

J'essaie d'intégrer la fiche Excel avec les données (j'ai tenté un "worksheet") mais ça ne fonctionne pas.

  • J'ai mis le premier tableau sous forme de tableau structuré, il se se nomme "Tableau1".
  • A partir de ce tableau, j'ai créé le TCD, il se nomme "Tableau croisé dynamique1"
  • Ensuite, le code est à placer dans le module de la feuille puisque j'utilise l'évènement Change de la feuille.
Me.ListObjects("Tableau1").DataBodyRange

Correspond aux données du Tableau1, sans les entêtes.

Me.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

On demande l'actualisation du TCD nommé Tableau croisé dynamique1.

Donc, si la cible fait partie des données du tableau, à chaque changement, on actualise le TCD.

(Si tu renommes le tableau où le TCD, pense également à les modifier dans le code).

Bonne continuation,

Bonjour,

Merci pour vos réponses :)

D'accord je comprends mieux.

Voilà comment j'ai fait :

exel

Mais après quand j'exécute ça me fait ça (ça me demande de nommer ma macro, je l'ai nommé "refresh" et ça m'a créé un nouveau sub en dessous) :

capture7

et ça (ça me crée un nouveau sub) :

capture8

Il me semble avoir correctement changer les noms des éléments dans le code, crée un tableau au début en faisant ça : "Accueil > Mettre sous forme de tableau", ça m'a donné le nom de tableau 1.

Merci à vous et bonne journée :)

J'ai testé ce matin sur ce fichier :

7exemple.xlsm (25.49 Ko)

Bonjour à tous,

Donc, si la cible fait partie des données du tableau, à chaque changement, on actualise le TCD.

  • On utilise donc l'évènement Change de la feuille Données......donc le code doit être dans le module de celle-ci et non dans un module standard.
  • Le TCD à actualiser se trouve sur la feuille TCD et non Données
image
5adjay.xlsm (25.92 Ko)

Cordialement,

Comme ton TCD est sur la feuille TCD, l'actualisation n'est utile que si tu actives cette feuille...

image
10adjay.xlsm (25.52 Ko)

....à toi de voir.......

Cordialement,

Hello,

Oki super, j'ai testé et ça fonctionne :) J'ai compris ce que j'avais mal fait !

Merci beaucoup, j'ai appris pleins de trucs !

Excellente journée à vous !

Cordialement,

Adjay

Rechercher des sujets similaires à "afficher valeurs"