IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Récupérer une valeur sous une cellule qui peut être variable dans un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Août 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Août 2022
    Messages : 4
    Par défaut Récupérer une valeur sous une cellule qui peut être variable dans un tableau
    Bonjour à tous,

    je suis nouveau sur ce forum, mais j'épére trouver toutes mes réponses avec vous tous.

    alors enfaite je cherche une formule VBA qui va me trouver la valeur d'une cellule en dessous d'une valeur d'une autre cellule.

    je m'explique, il faudrait que je récupére dans le tableau la valeur sous la cellule "Poids" dans la ligne 5. Le problème c'est que cette case peut être variable en fonction des clients.

    Donc je souhaite un code qui sais que l'on veux le nombre sous la cellule "poids".

    pour les autre cellule j'ai coder ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = 6 To derniereligne
     LigneDispo = Range("A1000").End(xlUp).Offset(1, 0).Row
                For j = 1 To 26
                    Worksheets("Feuil1").Cells(LigneDispo, j) = CSVtoREAD(i, j)
                Next j
     
            Next i

    j’espère être claire dans ma demande et j’espère que vous pourrez m'aider.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Bonjour

    Tu peux trouver une valeur dans un ensemble de cellules avec Application.WorksheetFunction.Match

    Tu récupères ainsi le numéro de ligne ou colonne de la valeur cherchée dans la zone de recherche.

    Ensuite tu pourras facilement utiliser Cells

    Je suis actuellement sur mon portable alors je ne peux pas te le faire directement dans ton fichier.

  3. #3
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Je viens d'ouvrir ton fichier exemple. Bonne nouvelle; tu n'as pas besoin de VBA.

    La formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT(ADRESSE(6;EQUIV("poids";5:5;0)))
    en Q3 te permet directement de reprendre la valeur de la ligne 6 sous la colonne titrée "Poids" en ligne 5.

    Et cette formule ira chercher le mot "Poids" n'importe où dans la ligne 5 (puisque tu dis que l'ordre des colonnes n'est pas identique pour tous les clients) et ira ensuite lire la valeur en ligne 6 de cette colonne trouvée.

    Pour finaliser tu peux même utiliser SiErreur().

    Voir PJ.
    Fichiers attachés Fichiers attachés

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Août 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Août 2022
    Messages : 4
    Par défaut
    Merci pour ton aide mais le problème c'est qu'il peut y avoir plusieurs ligne avec des poids différents.

    du coup je voulais faire une boucle comme j'ai fait dans les code précédents.

    Cette formule ne fonctionne que si il y a une ligne.

    je t'ai remis le fichier.

    en gros il faut trouver dans la ligne 5 la valeur "poids" puis après boucler pour récupéré les valeurs qui se trouve dessous.

    mais vraiment merci de m'aider car je suis bloquer depuis 2 jours dessus.
    Fichiers attachés Fichiers attachés

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Août 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Août 2022
    Messages : 4
    Par défaut
    je te remets mon fichier avec les codes dessus tu comprendra peut être mieux.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 290
    Par défaut
    Salut
    Il faut reconnaitre que les explications dans votre Post#1 ne sont pas claires du tout.
    Vous avez oublié de préciser quel mot Poids était utile. Il y en a 1 en Q3 et lun autre en AC5.
    Vous avez un tableau qui semble tout du moins être structuré et vous voudriez récupérer les valeurs de la colonne (en-tête) Poids fonction d'un client.
    Il est certain que le numéro de ligne est variable selon le client sélectionné. Faut-il espéré qu'il n'y ait de patronymes identiques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub FiltreClient()
    Dim xlWsh As Worksheet
    Dim lstObj As ListObject
    Dim rngTable As Range
    Dim rngArea As Range
    Dim rngRow As Range
    Dim colClient As Integer, colPoids As Integer
    Dim strCritere As String
     
    Set xlWsh = ThisWorkbook.Worksheets(1)
    Set lstObj = xlWsh.ListObjects(1)
     
    If lstObj.ShowAutoFilter Then
        lstObj.ShowAutoFilter = False
    End If
     
    With lstObj
        colClient = .HeaderRowRange.Cells.Find("CLIENT").Column
        strCritere = InputBox("Saisir nom client :", "Nom client")
        If strCritere = "" Then Exit Sub
            If StrPtr(strCritere) <> 0 Then
                .Range.AutoFilter Field:=colClient, Criteria1:=strCritere
            End If
    End With
     
    Set rngTable = lstObj.DataBodyRange.SpecialCells(xlCellTypeVisible)
    colPoids = ThisWorkbook.Worksheets(1).ListObjects(1).HeaderRowRange.Cells.Find("Poids").Column
     
    With rngTable
    Debug.Print "Plage filtrée : " & rngTable.Address
    For Each rngArea In rngTable.Areas
        Debug.Print "  Ligne filtrée : " & rngArea.Address
        For Each rngRow In rngArea.Rows
            Debug.Print "    Poids : " & Cells(rngRow.Row, colPoids)
        Next
    Next
    End With
     
    End Sub
    Images attachées Images attachées  

Discussions similaires

  1. [XL-2016] Garder une cellule qui peut changer de ligne
    Par tidav4 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/10/2016, 16h14
  2. [XL-2003] Comment documenter un DTPickers avec le contenu d'une cellule qui peut être vide.
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/12/2010, 01h54
  3. Réponses: 2
    Dernier message: 06/07/2007, 20h08
  4. Comment insérer une date qui peut être nulle ?
    Par guidav dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/01/2007, 17h18
  5. [...] doit utiliser une requête qui peut être mise à jour
    Par requiemforadream dans le forum ASP
    Réponses: 4
    Dernier message: 26/04/2005, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo