RESOLU afficher les résultats dans Userform2 après une recherche

Geely

XLDnaute Occasionnel
Bonsoir le Forum

Ma feuille se décompose en deux étapes: j'ouvre un UserForm1 pour faire une recherche d'une identité.
Le résultat est affiché dans une ListBox. jusque là pas de problème.
exemple: Si je tape "pomme" dans identité et lance la recherche, j'ai la liste des lignes ayant le mot "pomme"
ensuite si je clic sur une ligne j'ouvre UserForm2 (c'est là que je bloque) pour afficher cinq lignes qui suivent ma sélection par le clic ayant le mot "controle" en colonne C.

En espérant que le fichier vous aidera a comprendre mon problème.


Geely
 

Pièces jointes

  • geely4.xls
    975.5 KB · Affichages: 85
  • geely4.xls
    975.5 KB · Affichages: 87
  • geely4.xls
    975.5 KB · Affichages: 91
Dernière édition:

Geely

XLDnaute Occasionnel
Re : afficher les résultats dans Userform2 après une recherche

Bonjour Pierrejean, bonjour à tous

Des que j'importe le fichier CSV le Format des cellules ayant une date se modifient en Jj/mm/aaaa hh:mn
et les cellules ayant un X% se modifient en formant% colonne U
Comment empercher la modification du format du fichier csv lors du .Copy.
C'est le dernier truc qui cloche.:mad:


je me pose la qst.. pourquoi pas faire la boucle directement sur le fichier .csv ??? on gagne du temps a mediter
Bonne idée.

Geely
 
Dernière édition:

Geely

XLDnaute Occasionnel
Re : afficher les résultats dans Userform2 après une recherche

Je ne comprends pas
En colonne T il n'apparait pas de % ni avant ni après importation
Normalement le .Copy destination copie aussi le format
c'est en colonne U Pierre jean
les cellule en x% sont passées en format % et en colonne B les cellules avec les dates sont passées en format jj/mm/aaaa
Pourquoi comment?
Donc après dans l'UserForm l'affichage est modifié.
Geely
 

pierrejean

XLDnaute Barbatruc
Re : afficher les résultats dans Userform2 après une recherche

Re

L'importation est absolument fidele au fichier Csv . La copie est absolument fidele a l'importation
Pour ce qui est de l'USF Tracktool si tu souhaites voir aparaitre le % et si tu souhaites ne plus avoir les heures a la suite de la date il te faut modifier la sub comme ceci

Code:
Private Sub CommandButton1_Click()
 Dim t(), t1(), z As Long, x As Long, i As Long, ligne As Long
 ListBox1.Clear
 'On Error Resume Next
 t = Feuil1.Range("a21:ay" & Feuil1.Cells(Rows.Count, 1).End(xlUp).Row)
 ReDim t1(1 To UBound(t), 1 To 8)
 For i = 1 To UBound(t)
 If t(i, 20) Like "*" & TextBox1 & "*" Then
 x = x + 1
 t1(x, 1) = Format(t(i, 2), "dd/mm/yyyy")
 t1(x, 2) = t(i, 20)
 t1(x, 3) = t(i, 13)
 If IsNumeric(t(i, 21)) Then
   t1(x, 4) = Format(t(i, 21), "0%")
 Else
   t1(x, 4) = t(i, 21)
 End If
 t1(x, 5) = t(i, 23)
 t1(x, 6) = t(i, 24)
 t1(x, 7) = t(i, 25)
 t1(x, 8) = t(i, 26)
 't1(x, 9) = t(i, 47)
 't1(x, 10) = t(i, 48)
' t1(x, 11) = t(i, 49)
 't1(x, 12) = t(i, 50)
't1(x, 13) = t(i, 22)
 End If: Next i
 ListBox1.List = t1
End Sub
 

Geely

XLDnaute Occasionnel
Re : afficher les résultats dans Userform2 après une recherche

Re Pierrejean
Avant avec ce code, l'importation du fichier csv ne modifiait pas le format de la colonne U. le format par exemple de 75% était un format "text"

Option Explicit
Sub CopierCSV()

Range("A20:BB65530").ClearContents
Range("F2").ClearContents 'efface le nom complet du fichier
Dim Nomfichierentree As String, S As String

Application.DisplayAlerts = False
Application.ScreenUpdating = False
Nomfichierentree = Application.GetOpenFilename("Fichier Csv (*.csv), *.csv")
If Nomfichierentree = "Faux" Then Exit Sub 'cliquer sur annuler

'efface
Range("A20:BB65530").Select
Selection.ClearContents
'Ouvre le fichier texte en séparant les colonnes avec les espaces.
Workbooks.OpenText Filename:=Nomfichierentree, local:=True

'copies des données
With ActiveWorkbook
S = "A1:" & ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Address
ActiveSheet.Range(S).Copy
.Close
End With
Range("F2") = Nomfichierentree
Range("A20").Select
ActiveSheet.Paste
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A20").Select
'Rétabli les fonction de messages d'alertes.
Application.DisplayAlerts = True
End Sub

et depuis que j'utilise le code (au message 27) que tu m'as suggéré; le format de la colonne U, les cellules sont en format standard sauf les cellules qui ont un x% passe en format "pourcentage". C'est pourquoi dans le USF de Tracktool le 75% devient un 0.75.
Je n'arrive pas trouver de solution pour ce petit problème.


Pour le USF j'ai opté pour cette solution
Code:
If Me.TextBox1 = "" Then Me.TextBox1 = "*"
      For i = 21 To [A65530].End(xlUp).Row
   If Cells(i, r) Like "*" & Me.TextBox1 & "*" Then
      Me.ListBox1.AddItem
      Me.ListBox1.List(k, 0) = Cells(i, 2) 'date
      Me.ListBox1.List(k, 1) = Cells(i, 20) 'identité
      Me.ListBox1.List(k, 2) = Cells(i, 13) & " " & Cells(i, 21) 'test + résultat
      Me.ListBox1.List(k, 3) = Cells(i, 23) & ". Lot: " & Cells(i, 24) 'réactif-1 + lot-1
      Me.ListBox1.List(k, 4) = Cells(i, 25) & ". Lot: " & Cells(i, 26) 'réactif-2 + lot-2
      Me.ListBox1.List(k, 5) = Cells(i, 47) & ". Lot: " & Cells(i, 48) 'Controle-1 + lot-1
      Me.ListBox1.List(k, 6) = Cells(i, 49) & ". Lot: " & Cells(i, 50) 'Controle-2 + lot-2
      Me.ListBox1.List(k, 7) = Cells(i, 22) 'lot Bobine
      Me.ListBox1.List(k, 8) = i
      k = k + 1
   End If
 Next i

Geely
 

pierrejean

XLDnaute Barbatruc
Re : afficher les résultats dans Userform2 après une recherche

Re

Bises laetitia :):)

Geely Oui mais le code dont tu parles maltraite les dates
De plus , je vois mal l'interêt d'avoir un pourcentage en texte
Neanmoins, si tu y tiens on peut faire une usine à gaz qui alourdira encore le code et prendra un temps fou
à toi de voir
 

Geely

XLDnaute Occasionnel
Re : afficher les résultats dans Userform2 après une recherche

Bonjour,
L’intérêt d'avoir un pourcentage en texte, et seulement d'afficher un résultat en pourcentage tel qu'il est écrit dans le fichier csv. il ne sert pour aucun calcul pour la suite.
C'est étrange que l'importation modifie le format des cellules ayant un "%". Peut être faut il faire la copie sur une autre feuille.?
Ou comme le précisait Laetitia90 de faire la boucle directement sur le fichier .csv


cdlt
Geely
 

pierrejean

XLDnaute Barbatruc
Re : afficher les résultats dans Userform2 après une recherche

Re
Pour l'affichage , je t'ai donné la solution
Et il est faux de dire que l'importation modifie le le format des cellules ( le respect est même tel que l'on retrouve une date correcte !!!! )
Quant à la boucle sur le fichier .csv elle suppose que celui ci reste ouvert
Essaie et dis nous
 

Geely

XLDnaute Occasionnel
Re : afficher les résultats dans Userform2 après une recherche

Bonsoir tlm

Je laisse tomber la boucle sur le fichier csv, cela n'apporte rien de plus et mon problème reste entier.
Donc il faudrait transformer les cellules au format "pourcentage" en format texte; c'est à dire que la cellule 75% par exemple doit être passée en format texte et afficher toujours "75%" et non 0.75.

Dans cette colonne, j'ai soit du texte soit un nombre en %. Il faudrait donc à toutes les cellules contenant un nombre, multiplier le nombre par 100 et ajouter le caractère "%" et ajouter un ' pour les passer au format texte.

au secours

Geely
 

pierrejean

XLDnaute Barbatruc
Re : afficher les résultats dans Userform2 après une recherche

Re

Essaie ceci (et c'est ma derniere contribution sur ce fil ou regne ce qu'il faut bien appeler de l'obstination !!!)

Code:
Private Sub CommandButton1_Click()
r = 20
If Me.TextBox1 = "" Then Me.TextBox1 = "*"
      For i = 21 To [A65530].End(xlUp).Row
   If Cells(i, r) Like "*" & Me.TextBox1 & "*" Then
      Me.ListBox1.AddItem
      Me.ListBox1.List(k, 0) = Cells(i, 2) 'date
      Me.ListBox1.List(k, 1) = Cells(i, 20) 'identité
      If IsNumeric(Cells(i, 21)) Then
         z = Format(Cells(i, 21), "0%")
      Else
         z = Cells(i, 21)
      End If
      Me.ListBox1.List(k, 2) = Cells(i, 13) & " " & z 'test + résultat
      Me.ListBox1.List(k, 3) = Cells(i, 23) & ". Lot: " & Cells(i, 24) 'réactif-1 + lot-1
      Me.ListBox1.List(k, 4) = Cells(i, 25) & ". Lot: " & Cells(i, 26) 'réactif-2 + lot-2
      Me.ListBox1.List(k, 5) = Cells(i, 47) & ". Lot: " & Cells(i, 48) 'Controle-1 + lot-1
      Me.ListBox1.List(k, 6) = Cells(i, 49) & ". Lot: " & Cells(i, 50) 'Controle-2 + lot-2
      Me.ListBox1.List(k, 7) = Cells(i, 22) 'lot Bobine
      Me.ListBox1.List(k, 8) = i
      k = k + 1
   End If
 Next i
End Sub
 

Geely

XLDnaute Occasionnel
Re : afficher les résultats dans Userform2 après une recherche

Bonjour Pierre Jean

Désolé d'avoir été obstiné.(c'est vrai que je suis un peu têtu).

Et il est faux de dire que l'importation modifie le le format des cellules ( le respect est même tel que l'on retrouve une date correcte !!!! )
Tu as raison, mais je ne comprenais pas pourquoi dans la première méthode d'importation le format de la colonne U était en format Texte.

Ta dernière solution résous mon problème, et elle a l'avantage d'être plus rapide que de modifier le fichier importé.

On apprend un peu plus quand on "galère" et là je pense avoir progressé.

Un grand merci à toi Pierrejean et aussi aux autres, pour l'aide, et la réactivité.

"Si la cause est bonne, c'est de la persévérance. Si la cause est mauvaise, c'est de l'obstination."

Bon Week-End.
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 325
Membres
103 516
dernier inscrit
René Rivoli Monin