Recherche et archive VBA
Bonjour,
J'avance pas mal sur ce que je souhaite faire mais je bloque à nouveau.
J'ai une erreur sur mes recherches via mon userform, je ne sais pas d'où ça vient, surement quelque chose de TRÈS mal encodé
De plus j'aimerai que le résultat de mes recherches s'affiche dans un nouveau userform que j'ai créé. Dans ce userform se trouvera toutes les infos correspondantes (si un champs est vide (par exemple Num2), je souhaiterai que s'affiche le texte "Pas d'information pour ce champs")).
Dans ce nouveau Userform, je dois avoir uniquement la possibilité d'ajouter une date2 (les autres champs ne doivent pas être modifiables) et lorsque je clique sur le bouton "Archiver", ces données basculent de l'onglet "base" à l'onglet "Résultat".
Je joints le fichier, merci d'avance pour votre aide
J'ai résolu mon problème sur la recherche et finalement je vais mettre le résultat sur un autre onglet de mon Userform, ça me parait plus cohérent par rapport à ce que je souhaite faire.
Comment transférer les variables que je trouve dans cet autre onglet et l'afficher ?? Je n'ai pas trouvé la commande.
Merci d'avance
Bon bein à force de tâtonner, j'y arrive tout doucement...
Il ne me reste qu'à archiver les données une fois la Date2 saisie (est-ce possible d'ailleurs que le curseur soit directement sur ce champs quand on charge le résultat ?) et à les supprimer de la Base.
Le code est fait comme un gros débutant mais ça fonctionne, si quelqu'un se sent de simplifier tout ça, je suis hyper preneur (avec quelques explications dans le code serait un énorme plus histoire que je comprenne et que j'essaye de m'améliorer en vba
Merci
Bon bein je me réponds à moi-même
J'ai donc réussi à archiver et supprimer après avoir fait la recherche.
Par contre, il doit rester un bug quand la recherche ne donne rien... Pas encore trouvé la solution
Donc toujours preneur de simplification par rapport à ce que j'ai fait, merci d'avance
Salut Paulox,
à l'arrache mais voici ton fichier... à tester... évidemment!
Tout se passe dans ton Multipage d'origine. La commande d'enregistrement contient les valeurs suivantes :
- sans recherche préalable, "Créer" ;
- avec recherche préalable, mais les 4 premières TextBox (jusque Date1) incomplètes : "Sauver" ;
- avec la seule Date2 à compléter : "Archiver"
Je suppose qu'il faut calculer le classement en tenant compte des valeurs archivées en 'Résultat' ?!
Public Sub Classement(ByVal iIdx%)
'
Dim rCel As Range
Dim iRow1%, iRow2%, iNum%
'
If Me.txtIN1.Text <> "" Then
On Error Resume Next
'
For X = 1 To 10
Me.Controls("Opt" & X).Caption = Chr(64 + X)
Next
For X = 1 To 2
iRow1 = 0
With Worksheets(IIf(X = 1, "Base", "Résultat"))
If .Range("A3").Value <> "" Then _
.Range("A1:F" & .Range("A" & .Rows.Count).End(xlUp).Row).Sort key1:=.Range("D2"), order1:=xlAscending, Orientation:=xlTopToBottom, Header:=xlYes
iRow1 = .Range("D:D").Find(what:=Chr(64 + iIdx), lookat:=xlPart, LookIn:=xlValues, searchdirection:=xlNext).Row
iRow2 = .Range("D:D").Find(what:=Chr(64 + iIdx), lookat:=xlPart, LookIn:=xlValues, searchdirection:=xlPrevious).Row
If iRow1 = 0 Then
iNum = IIf(iNum = 0, 1, iNum)
Else
For Y = iRow1 To iRow2
If Y > 1 Then iNum = IIf(Val(Right(.Cells(Y, 4), Len(.Cells(Y, 4)) - 1)) > iNum, Val(Right(.Cells(Y, 4), Len(.Cells(Y, 4)) - 1)), iNum)
Next
iNum = IIf(iNum + 1 < 1000, iNum + 1, 1)
End If
End With
Next
Me.Controls("Opt" & iIdx).Caption = Chr(64 + iIdx) & CStr(iNum)
'
On Error GoTo 0
End If
'
End Sub
Je fatigue à cette heure-ci. Teste et raconte...
A+
Salut,
Merci pour ce retour, ça fonctionne plutôt pas mal du tout, c'est top
J'ai malgré tout constaté un bug lors de l'incrémentation des chiffres, ça incrémente de 2 en 2
Et au niveau du résultat, c'est super cet affichage mais il me faut surtout le rang en priorité (affichage plus gros si possible)
Et lorsque j'archive (si il y a des doublons et que j'en sélectionne un), quelques fois il n'archive pas le bon
Et pour finir j'ai quelques bugs sur la recherche, par exemple :
Je te mets en pièce jointe ce que j'ai fait de mon coté pour que tu vois un peu le résultat attendu
Et si tu peux mettre quelques commentaires sur ton code histoire que j'apprenne aussi, mon but n'étant pas d'avoir du tout cuit mais d'essayer de progresser
Merci mille fois pour ton aide.
Salut Paulox,
je regarde ça dès que je peux... çàd, avec le beau temps annoncé et les travaux en vue, pas avant ce soir!
Bizarre quand même cette incrémentation par deux... Pas vu ça ici...
A+
Je regarde aussi de mon coté cet am, ton code me plait vraiment bien donc je vais approfondir et essayer de m'y retrouver, vu que je code comme un bourrin, un codage comme le tien qui est bien organisé me perd totalement
Faut vraiment que je fasse un effort de mon coté pour être plus propre dans ce domaine
Pour illustrer mon com sur l'incrément 2 par 2, sur le bouton option tu vois bien :
Bonjour,
Je n'ai pas trop eu le temps hier de me pencher sur le problème mais j'ai malgré tout vu que lorsqu'il y avait des doublons (sur num1 par exemple), en fait il archive le bon mais supprime le 1er de la liste
Et l'incrément de 2 en 2 ne se produit pas à chaque fois, j'ai testé plusieurs fois et quelques fois ça incrémente bien, très étrange...