VBA recuperation de valeurs précises

a

Bonsoir

Peux-tu envoyer un fichier correspondant à ta demande.

Et la macro ne pourra pas à chaque fois créer une feuille recap, une fois qu'elle est créée,c'est terminé. Peut-être est-il mieux que tu crées cette feuille toi-même et qu'ensuite la macro vienne la remplir ??

C'est à voir

Bye

Hello

Merci pour ta réponse!

Oui la feuille recap est crée 1 fois c'est exactement cela !

Je n'ai malheureusement pas de fichier exemple a transmettre actuellement c'est pour cela que j'ai exposer mon pb le plus clairement possible.

Oui je peux aussi crée la feuille recap moi même puis la macro viendras la remplir..

a noter que les valeurs récupérer dans mon exemple entre parenthèse , c'est une valeur toujours de la même longueur , c'est à dire une suite de 7 numéros.

Re

Voici un fichier qui peut t'aider en créant toi-même une feuille nommée recap vide

Tu vois

Bye

13recup-val.xlsm (16.40 Ko)

Salut vinks, Patty,

quelque chose comme ça?

Private Sub cmdGO_Click()
'
Dim tData
'
Application.ScreenUpdating = False
'
With Worksheets("Recap")
    .UsedRange.ClearContents
    For x = 2 To Range("A" & Rows.Count).End(xlUp).Row
        tData = Split(Mid(Cells(x, 2), InStr(Cells(x, 2), "(") + 1, InStrRev(Cells(x, 2), ")") - (InStr(Cells(x, 2), "(") + 1)), ",")
        For y = 0 To UBound(tData)
            iLig = iLig + 1
            .Cells(iLig, 1) = Cells(x, 1) & " " & tData(y)
        Next
        .Columns("A").AutoFit
        .Activate
    Next
End With
'
Application.ScreenUpdating = True
'
End Sub

A+

10pit-module.xlsm (21.17 Ko)

Bonjour curulis57

Toi au moins tu es un chef, je suis contente pour vinks, car j'aime chercher mais je galère

C'est top

Bye

Merci bcp pour ton aide cela correspond à 90% à ma demande !

En faite j'ai plein plein de sheet dans mon workbook.

Comment puis-je indiquer dans le code que je veux qu'il lise dans tel sheet pour ecrire dans la sheet "recap" ?

Merci bcp !


curulis57 a écrit :

Salut vinks, Patty,

quelque chose comme ça?

Private Sub cmdGO_Click()
'
Dim tData
'
Application.ScreenUpdating = False
'
With Worksheets("Recap")
    .UsedRange.ClearContents
    For x = 2 To Range("A" & Rows.Count).End(xlUp).Row
        tData = Split(Mid(Cells(x, 2), InStr(Cells(x, 2), "(") + 1, InStrRev(Cells(x, 2), ")") - (InStr(Cells(x, 2), "(") + 1)), ",")
        For y = 0 To UBound(tData)
            iLig = iLig + 1
            .Cells(iLig, 1) = Cells(x, 1) & " " & tData(y)
        Next
        .Columns("A").AutoFit
        .Activate
    Next
End With
'
Application.ScreenUpdating = True
'
End Sub

A+

Merci c'est presque cela en faite le résultat que j'obtiens av ton code c'est mon besoin mais dans la même cellule , j'aimerai que le PIT-XXX soit dans une cellule et les numero dans la cellule d'as coté. Comme le fait le code fournis par la 1ere personne !

Cependant la j'ai 8sheets différente avec la sheet "recap" comment dire au code de lire dans tel OU tel sheet ?

Bonsoir,

voilà!

Il te suffit de cliquer en [A1] dans la feuille de ton choix : la macro se trouve dans le module 'ThisWorkBook' et est donc valable pour n'importe quelle feuille.

Attention, si une feuille, autre que RECAP, n'est pas concernée, il faut l'ajouter dans la ligne de condition d'accès au calcul.

[quote]If Sh.Name = "Recap" Then Exit Sub

[/quote]

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'
Dim tData, tRecap()
'
Application.ScreenUpdating = False
'
If Sh.Name = "Recap" Then Exit Sub
'
If Not Intersect(Target, Range("A1")) Is Nothing Then
    With Worksheets("Recap")
        .UsedRange.ClearContents
        For x = 2 To Range("A" & Rows.Count).End(xlUp).Row
            tData = Split(Mid(Cells(x, 2), InStr(Cells(x, 2), "(") + 1, InStrRev(Cells(x, 2), ")") - (InStr(Cells(x, 2), "(") + 1)), ",")
            For y = 0 To UBound(tData)
                iIdx = iIdx + 1
                ReDim Preserve tRecap(2, iIdx)
                tRecap(0, iIdx - 1) = Cells(x, 1)
                tRecap(1, iIdx - 1) = tData(y)
            Next
        Next
        .Range("A1").Resize(iIdx, 2) = WorksheetFunction.Transpose(tRecap)
        .Columns("A:B").AutoFit
        .Activate
    End With
End If
'
Application.ScreenUpdating = True
'
End Sub

@Patty : très gentille appréciation mais je suis certain de ne pas la mériter autant!

A+

13pit-module.xlsm (18.73 Ko)

Bonjour

Veux-tu essayer cela en cliquant sur le bouton sélection, tu choisis les feuilles à traiter, ce qui t'évites d'aller sur chaque feuille en A1

Vois si cela te vas

bye

Patty5046 a écrit :

Bonjour

Veux-tu essayer cela en cliquant sur le bouton sélection, tu choisis les feuilles à traiter, ce qui t'évites d'aller sur chaque feuille en A1

Vois si cela te vas

bye

Merci bcp à vous deux

Patty c'est plus proche de ma demande merci beaucoup !

Cependant dans mon fichier lorsque je selectionne la feuille à traiter et que je clique sur OK rien ne se passe ?

Dans ton code comment il repérè la suite de numéro dans la feuille en question ?

La ligne PIT-XXXX est toujours en colonne A

Tandis que les numéro qui doivent apparaitre en face à récuperer sont toujours présent en colonne AH.

Voici un exemple : Dans ma feuille à traiter il se peut qu'as certaine ligne il n'y ai pas de numéro à récupérer

Je vous met un exemple de mon VRAI doc en PJ avec le format attendu en sortie dans la feuille "recap" .

Un grand merci à vous deux encore !

13exemple.xlsx (9.25 Ko)

Bonjour,

c'est quand même invraisemblable de devoir attendre ton Xième post pour avoir un semblant de fichier original!

Tu trouves rigolo de nous faire patauger en gardant tes infos?

  • les valeurs à chercher sont en [AH], dis-tu... alors, dans ton vrai fichier, que font-elles en [D] ?
  • le format de ces valeurs vient bizarrement de changer : (jjjj : 125...,125...)...

Encore d'autres nouveautés à attendre? Quand? Dans deux mois?

J'ai autre chose à faire que de jouer à cache-cache!

(j'ai l'impression d'être de mauvais poil, aujourd'hui, je ne sais pas pourquoi... )

Bye!

Bonjour

Je ne comprends pas , dans ton exemple les numéros à récupérer sont en D et non en AH, cela change tout pour la macro

Alors??

Merci

C'est un fichier EXEMPLE.

EXEMPLE > ressemblant au VRAI et non le VRAI.

Peux importe ou se situe les données !

Quand je dit qu'elles sont en AH c'est pour spécifier que les données sont présentes DANS LA MÊME COLONNE.

Alors que ce soit en AH ou en D c'est pareil.

Je voulais simplement savoir si on pouvait mettre en DUR dans le code les COLONNE EN QUESTION

Inutile de s’exciter si le besoin est mal compris


Patty5046 a écrit :

Bonjour

Je ne comprends pas , dans ton exemple les numéros à récupérer sont en D et non en AH, cela change tout pour la macro

Alors??

Merci

Peux être ai-je mal exprimer ma demande de base.

Les données sont en A et les autres en AH ( dans le vrai fichier ).

Il y a plein de données je voulais simplement que le code aille lire dans deux COLONNE BIEN SPÉCIFIQUE d'une feuille ou il y'a plein de colonne et plein de données

tout simplement 8)

En gros le fichier exemple que j'ai fournis correspond simplement au format du vrai que j'ai !

Dans la feuille "recap" j’attends cela en sortie.

Maintenant quelque soit l'emplacement des données, est t'il possible de simplement dire dans le code grossièrement :

Tu lis lignes par ligné dans 2 COLONNES SPÉCIFIQUES.

tu prend la valeur inscrite dans TEL COLONNE et dans l'autre tu ne prend que les numéros entre parenthèse.

SI entre parenthèse y'a plusieurs numéro sur une même ligne alors tu fait autant de ligne que de numéro il y a av la même valeur devant.

Bonsoir

Je crois que curulis 57 avait raison. Pour le moment, c'est toi qui t'excite , pas nous.

Alors regarde le code et mets les colonnes que tu veux, je crois que l'on a assez passé de temps pour toi. Nous faisons du "bénévolat", alors un peu de respect, et n'attends pas des solutions toutes cuites, je pense que tu peux un peu te plonger dans le code qui est déjà bien avancé.

Améliore-le pour tes besoins

Bon courage quand même et sans rancune

Rechercher des sujets similaires à "vba recuperation valeurs precises"