Code qui plante en bas de page

yodjeseb Messages postés 39 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 10 février 2014 - Modifié par pijaku le 16/01/2014 à 08:48
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 10 févr. 2014 à 12:42
Bonjour à tous,

Je vous présente mon problème :

Je rentre un nom dans une textbox, le code va chercher un nom équivalent dans la colonne "I" et me renvoi, dans une listbox, le texte de la colonne "A" de la même ligne, en supprimant les doublons.
Cela fonctionne très bien sauf quand il ne trouve pas le nom recherché dans la première page de ma feuille "macave", le code plante. En revanche, quand il trouve dans la première page, il continue dans les pages suivantes de ma feuille.

Si quelqu'un a une idée merci d'avance.


Private Sub CommandButtonRechercheVin_Click()
Dim Cel As Range, Depart As String, Ref As String
Dim Mondico As Object

  'efface le contenu de la listbox1'
 Me.ListBox1.Clear

  'recherche dans la colonne I'
 Ref = Me.TextBox1.Text
 
  ' Object qui n'accepte pas les doublons
 Set Mondico = CreateObject("Scripting.dictionary")
 
  With Sheets("Ma Cave")
    Set Cel = .Columns("I").Cells.Find(What:=Ref, LookIn:=xlValues, lookat:=xlPart)
    If Not Cel Is Nothing Then
      Depart = Cel.Address
      Do
        Mondico(.Range("A" & Cel.Row).Value) = ""
        Set Cel = .Columns("I").Cells.FindNext(Cel)
      Loop While Depart <> Cel.Address
      Me.ListBox1.List = Application.Transpose(Mondico.keys)
    Else
    'si pas trouvé le met dans la liste'
      MsgBox "Pas trouvé de vin en accord avec " & Ref & "", vbCritical
    End If
  End With
End Sub




--

57 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 16/01/2014 à 21:52
Bon ...
Pour les autres développeurs qui passeraient par là :
voilà deux autres manières de traiter ce problème (très rapidement et sans alourdir par un dictionnaire ni une collection ... Juste la listbox) :
Manière autre n° 1 :
Private Sub CommandButton2_Click()
Dim Cel As Range, Depart As String, ref As String
ref = Me.TextBox1.Text
With Me.ListBox1
.Clear: If ref = "" Then Exit Sub
.Visible = False
End With
ref = Me.TextBox1.Text
With Sheets("Ma Cave")
Set Cel = .Columns("I").Cells.Find(What:=ref, LookIn:=xlValues, lookat:=xlPart)
If Not Cel Is Nothing Then
ajout_liste ListBox1, .Range("A" & Cel.Row).Value
Depart = Cel.Address
Do
Set Cel = .Columns("I").Cells.FindNext(Cel)
If Not Cel Is Nothing Then ajout_liste ListBox1, .Range("A" & Cel.Row).Value
Loop While Depart <> Cel.Address
Else
MsgBox "Pas trouvé de vin en accord avec " & ref & "", vbCritical
End If
End With
ListBox1.Visible = True
End Sub
Private Sub ajout_liste(LB As Object, c As String)
LB.ListIndex = -1
On Error Resume Next
LB.Text = c
On Error GoTo 0
If LB.ListIndex = -1 Then LB.AddItem c
End Sub
Manière autre numéro 2 :
Private Sub CommandButton3_Click()
Dim plage As Range, ref As String, c As String, derlig As Long, i As Long, colonne As Integer, tablo
ref = Me.TextBox1.Text
With Me.ListBox1
.Clear:
If ref = "" Then Exit Sub
.Visible = False
End With
With Sheets("ma cave")
derlig = .Range("A" & Rows.Count).End(xlUp).Row
colonne = .Columns("I").Column
tablo = .Range("A1:I" & derlig)
For i = 1 To UBound(tablo, 1)
If tablo(i, colonne) = ref Then
c = tablo(i, 1)
With ListBox1
.ListIndex = -1
On Error Resume Next
.Text = c
On Error GoTo 0
If .ListIndex = -1 Then .AddItem c
End With
End If
Next
End With
Me.ListBox1.Visible = True
End Sub
On pourrait en inventer d'autres encore, toutes aussi rapides ...
Voilà.





________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 17/01/2014 à 08:39
Et en voilà un autre, pour le plaisir de s'amuser un peu (car le développement est une chose sérieuse, mais également un jeu) :
Dim ref As String, i As Long, colonne As Long, c As String, n As Long, titi
ref = TextBox1.Text
With Sheets("Ma cave")
colonne = .Columns.Count
titi = .Range("A1:I" & .Range("A" & Rows.Count).End(xlUp).Row)
n = 1
For i = 1 To UBound(titi, 1)
If titi(i, Columns("I").Column) = ref Then
c = titi(i, 1)
If WorksheetFunction.CountIf(.Columns(colonne), c) = 0 Then
.Cells(n, colonne) = c
n = n + 1
End If
End If
Next
titi = .Columns(colonne).Cells.SpecialCells(xlCellTypeConstants)
Me.ListBox1.List = titi
.Columns(colonne).Delete
End With
Et cette fois-ci : ni dico, ni collection, ni "jeu" avec listindex.

et bien sur, si l'on veut non seulement les occurrences exactes, mais également (puisque le demandeur avait spécifié xlpart), les occurrences "contenant" une chaîne, il suffit de remplacer :
 If titi(i, Columns("I").Column) = ref Then
par
If titi(i, Columns("I").Column) Like "*" & ref & "*" Then
c'est tout.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
17 janv. 2014 à 10:20
Bonjour ucfoutu,

Les trois méthodes proposées sont toutes intéressantes.
J'aime bien travailler avec des variables tableaux, donc ma préférence irait sur la seconde.
La troisième méthode permettrait, si on le souhaite, de trier facilement les données à transférer dans la listbox, simplement en triant la colonne juste avant le remplissage.

Néanmoins, je ne suis pas revenu ici que pour donner mon avis.

Plusieurs questions me viennent spontanément.

1- Variables Long Au lieu de Range
Ne vaudrait-il pas mieux utiliser, dans la 1ère méthode, une variable de type Long en lieu et place de la variable Range?
Quelque chose comme ceci, avec un traitement d'erreur :

Private Sub CommandButton2_Click()
  Dim Lig As Long, drLig As Long, Temp As Long, ref As String
  ref = Me.TextBox1.Text
  With Me.ListBox1
    .Clear: If ref = "" Then Exit Sub
    .Visible = False
  End With
  ref = Me.TextBox1.Text
  Lig = 0
  With Sheets("Feuil1")
    drLig = .Range("I" & Rows.Count).End(xlUp).Row
    On Error GoTo TraitementErreur
    Lig = .Columns("I").Cells.Find(What:=ref, LookIn:=xlValues, lookat:=xlPart).Row
    On Error GoTo 0
    If Lig <> 0 Then
      ajout_liste ListBox1, .Range("A" & Lig).Value
      Do
        On Error GoTo TraitementFin
        Temp = .Range("I" & Lig & ":I" & drLig).Cells.Find(ref).Row
        If Temp = Lig Then Exit Do Else ajout_liste ListBox1, .Range("A" & Temp).Value: Lig = Temp
      Loop
    End If
  End With
TraitementFin:
ListBox1.Visible = True
Exit Sub
TraitementErreur:
MsgBox "Pas trouvé de vin en accord avec " & ref & "", vbCritical
End Sub

C'est moins gourmand en ressources. Mais est ce que la différence serait notable? (dans le cas d'une appli assez "grosse")

2- Le tri d'une ListBox
C'est une question récurrente.
Je pense, au vu de tes 3 méthodes, que la mieux adaptée serait la 3ème. Il me semble plus aisé de trier une colonne dans une feuille plutôt que de trier une variable tableau.
Qu'en penses tu?
Pour mieux me faire comprendre, voici deux "pseudo-codes" :
a) trier la colonne
Dim ref As String, i As Long, colonne As Long, c As String, n As Long, titi
 ref = TextBox1.Text
 With Sheets("Ma cave")
   colonne = .Columns.Count
   titi = .Range("A1:I" & .Range("A" & Rows.Count).End(xlUp).Row)
   n = 1
   For i = 1 To UBound(titi, 1)
     If titi(i, Columns("I").Column) = ref Then
       c = titi(i, 1)
       If WorksheetFunction.CountIf(.Columns(colonne), c) = 0 Then
         .Cells(n, colonne) = c
         n = n + 1
       End If
     End If
   Next
   .Columns(colonne).Sort '<== TRI
   titi = .Columns(colonne).Cells.SpecialCells(xlCellTypeConstants)
   Me.ListBox1.List = titi
   .Columns(colonne).Delete
  End With

b) avec une variable tableau à trier (méthode QuickSort) :
Private Sub CommandButton3_Click()
  Dim plage As Range, ref As String, c As String, derlig As Long, i As Long, colonne As Integer, tablo, tabloAtrier()
  ref = Me.TextBox1.Text
  With Me.ListBox1
    .Clear:
    If ref = "" Then Exit Sub
     .Visible = False
  End With
  With Sheets("ma cave")
    derlig = .Range("A" & Rows.Count).End(xlUp).Row
    colonne = .Columns("I").Column
    tablo = .Range("A1:I" & derlig)
    For i = 1 To UBound(tablo, 1)
      If tablo(i, colonne) = ref Then
         c = tablo(i, 1)
         With ListBox1
           .ListIndex = -1
           On Error Resume Next
           .Text = c
           On Error GoTo 0
           If .ListIndex = -1 Then .AddItem c
         End With
      End If
    Next
  End With
  '========== TRI =============
  ReDim tabloAtrier(ListBox1.ListCount - 1)
  For i = 0 To ListBox1.ListCount - 1
    tabloAtrier(i) = ListBox1.List(i)
  Next i
  Call triQuickSort(tabloAtrier, LBound(tabloAtrier), UBound(tabloAtrier))
  '======== FIN TRI =============
  Me.ListBox1.Visible = True
End Sub

Sub triQuickSort
'blabla
End Sub


3- Questions subsidiaires
a) Quel est l'intérêt de cacher la ListBox pendant son remplissage? Gain de "vitesse" dû au rafraichissement?

b) Dans la méthode 1, tu as deux fois la ligne
ref = Me.TextBox1.Text
(lignes 3 & 8 du code). Réelle utilité ou simple oubli de ta part?

Merci par avance de tes réponses.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 17/01/2014 à 10:40
Bonjour, pijaku,
j'aime également beaucoup tes idées et j'adore que tu en apportes d'autres, toutes intéressantes en ce sens qu'elles montrent un goût pour la recherche d'approches différentes.
Ton idée de tri est une très bonne idée (permet ensuite une élimination plus aisée de doublons).
Il est à ce propos regrettable que les listboxes de VBA ne possédant pas de propriété Sorted (que possèdent celles de VB6) on soit obligé de trier nous-même, soit la listbox, soit un tableau dynamique. Mais nous n'y pouvons rien, puisque cela a ainsi été conçu par MS. Nous subissons donc.
Oui : travailler sur la listbox invisible permet d'éviter les temps de rafraichissement. Cela n'est toutefois intéressant que lorsque l'on y ajoute article par article et est inutile dans le cas d'une alimentation "d'un seul coup", genre listbox1.list = toto (ou toto est un array)
Je te souhaite une excellente journée et salue ton esprit de développeur passionné.

Pour ajouter une idée (encore) de traitement :
Un filtre avancé sur colonne I ==>> une plage en résultant ===>> un tri sur colonne A ==>> une boucle de bas en haut pour suppression si countif de la valeur > 1

C'est amusant, tout cela.

ah oui : le doublon ref = TextBox1.Text est un oubli de nettoyage, bien sûr.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
17 janv. 2014 à 11:29
Excuse moi de te relancer à nouveau sur le sujet, mais...
Je ne suis pas développeur, juste amateur de code, donc j'aime bien comprendre.
A ce propos...
J'ai un souci avec la méthode "WorksheetFunction.CountIf".
Lors du clic sur le bouton dans mon UserForm, la procédure beuggue et, le débogage, me surligne la commande UserForm1.Show dans le code du bouton de ma feuille servant à ouvrir l'Userform...
Exactement comme s'il n'arrivait pas à charger l'Userform alors que celui-ci est déjà ouvert...

Je m'arrache le peu de cheveux qu'il me reste là dessus depuis 1 heure...

Voici le fichier incriminé, si tu as le temps d'y jeter un oeil. Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 janv. 2014 à 11:41
C'est étrange, car je n'arrive pas à reproduire ton bug.
Quels sont tes gestes exacts (dans l'ordre) pour y parvenir.
J'observe par ailleurs que la propriété ShowModal de ton UserForm est à True.
Si tu veux par là dire que ton userform étant affiché, tu as des difficultés à modifier des valeurs sur ta feuille de calcul, c'est normal puisque ton userform est en affichage modal. Passe cette propriété à False
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
Modifié par pijaku le 17/01/2014 à 11:45
Pffff...
Merci encore!
tout est dit ici :
Si tu veux par là dire que ton userform étant affiché, tu as des difficultés à modifier des valeurs sur ta feuille de calcul, c'est normal puisque ton userform est en affichage modal. Passe cette propriété à False
Bien vu!
En effet, dans le code, on touche aux données de la feuille, ici :
   titi = .Columns(colonne).Cells.SpecialCells(xlCellTypeConstants)
Me.ListBox1.List = titi
.Columns(colonne).Delete

Par conséquent l'affichage Modal ou non de l'Userform change la donne...
Merci encore.
A bientôt sur une autre énigme, ici ou ailleurs.
0
yodjeseb Messages postés 39 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 10 février 2014
Modifié par pijaku le 20/01/2014 à 07:52
J'ai bien entendu jeté à coup d'oeil à tout cela et je me dois de poster le code qui marche (à 99%) sur mon appli.

Merci.

Private Sub CommandButtonRechercheVin_Click()
Dim Lig As Long, drLig As Long, Temp As Long, ref As String
  
Sheets("Ma Cave").Activate
  
ref = Me.TextBox1.Text
  
With Me.ListBox1
    .Clear: If ref = "" Then Exit Sub
End With
  
With Sheets("Ma Cave")
    drLig = .Range("I" & Rows.Count).End(xlUp).Row
    On Error GoTo TraitementErreur
    Lig = .Columns("I").Cells.Find(What:=ref, LookIn:=xlValues, lookat:=xlPart).Row
    On Error GoTo 0
    If Lig <> 0 Then
      ajout_liste ListBox1, .Range("A" & Lig).Value
      Do
        On Error GoTo TraitementFin
        Temp = .Range("I" & Lig & ":I" & drLig).Cells.Find(ref).Row
        If Temp = Lig Then Exit Do Else ajout_liste ListBox1, .Range("A" & Temp).Value: Lig = Temp
      Loop
    End If
End With
  
TraitementFin:
ListBox1.Visible = True
Exit Sub

TraitementErreur:
MsgBox "Pas trouvé de vin en accord avec " & ref & "", vbCritical
End Sub
Private Sub ajout_liste(LB As Object, c As String)
  LB.ListIndex = -1
  On Error Resume Next
  LB.Text = c
  On Error GoTo 0
  If LB.ListIndex = -1 Then LB.AddItem c
End Sub




--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 19/01/2014 à 15:28
" le code qui marche (à 99%) sur mon appli. "
1) et dans quel cas (le 1% manquant) cela ne marche pas ?
2) je n'ai pas l'impression que le code montré corresponde à 100 % à l'un des codes que nous t'avons proposés (qui marchent tous à 100 %, eux).
_
3) un code qui ne marche pas à 100 % est un code défectueux.

_______________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
yodjeseb Messages postés 39 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 10 février 2014
Modifié par pijaku le 20/01/2014 à 07:53
99 % car il ne prend pas en compte la dernière ligne malgré :
drLig = .Range("I" & Rows.Count).End(xlUp).Row 


Rien ne marchait sans quelques petites modifs pour les autres codes ça ne fonctionne pas pour mon appli. Je n'ai pas le niveau pour tout comprendre et donc pour les adapter à ma guise.

--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 janv. 2014 à 16:39
La ligne que tu "dénonces", à savoir :
drLig = .Range("I" & Rows.Count).End(xlUp).Row 
ne saurait souffrir la MOINDRE faille

Ta faille est donc ailleurs.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 janv. 2014 à 18:23
Je viens de lire ton code (bien que non indenté et entre balises code).
Je ne veux pas le commenter outre mesure (liste trop longue).
Le plus surprenant : que tu y écrives que si Temp = Lig, alors Lig = Temp ... (pour le cas où non ?)
0
yodjeseb Messages postés 39 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 10 février 2014
19 janv. 2014 à 18:47
Si je supprime cela :
: Lig = Temp

Le code tourne en boucle et plante.

--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 janv. 2014 à 18:55
Oui. Je n'avais pas vu le Else, en effet ! (difficile, tu le vois, de suivre un code on présenté entre balises code et indenté).

Cela ne change rien à tout le labyrinthe que tu as "construit" et qui, de surcroît, se fait des croches-pieds, entre, d'une part la manière spaghetti (tes GOTO fortement déconseillés) et, d'autre part, des critères différents entre la première recherche (où tu te contentes de la présence d'une sous-chaîne) et les suivantes (où tu exiges la chaîne exacte)..
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 janv. 2014 à 08:37
Reprends s'il te plait le code exact que j'ai montré dans mon message du 16 janv. 2014 à 21:51 ("autre manière 1) .
Ne cherche pas à l'"améliorer.
Et dis-nous ...
Si tu nous dis que ne marche pas à 100 % chez toi, je te demanderai alors de mettre à disposition ton classeur. Je mettrai en route, pour l'ouvrir et l'examiner, un pc "dédié" à ce risque...

PS : tu peux également choisir d'utiliser n'importe lequel des autres codes que j'ai montrés. Je les au tous testés et ils marchent tous à 100%
0
yodjeseb Messages postés 39 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 10 février 2014
20 janv. 2014 à 19:11
Je les ai tous testé et aucun ne marchait, le seul qui marchait plus ou moins c'est celui-ci.

--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 20/01/2014 à 19:27
c'est ton classeur avec le test (de l'un de mes codes, rigoureusement copié) que je te demande.
Dépose-le sur un site de dépôt de fichiers et mets ici le lien correspondant à ce dépôt.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 20/01/2014 à 20:31
Et si cela te pose également problème (ce dépôt sur un site de dépôts) ===>> dis-le et je te fais parvenir par MP mon adresse email, à laquelle tu pourras me l'adresser pour examen, ce fameux classeur qui n'exécuterait pas sans faille l'un de mes codes....(qui, je le répète, marchent tous sans aucune faille chez moi !)
Nous ne pourrons en discuter valablement qu'ensuite (et au vu de ce que j'y trouverais).
Tu voudras bien comprendre que cette discussion ne peut continuer, sinon, sur des bases telles que "çà ne marche pas avec mon classeur" !
0
yodjeseb Messages postés 39 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 10 février 2014
21 janv. 2014 à 19:05
Voilà, j'ai copié le premier code tel quel.
Dans la première feuille, il y a un bouton "choix du vin", ensuite il faut taper un nom présent dans la colonne I de la feuille "ma cave" dans la textbox et normalement ça doit afficher la correspondance dans la listbox du dessous.

http://cjoint.com/?DAvs6HEC3iz

--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 21/01/2014 à 19:39
C'est une plaisanterie ou quoi, yodjeseb ?
Tu as mis le code dans l'évènement click d'un bouton inexistant.
Et rien dans l'évènement click du bouton concerné !
C'est dans l'évènement click du bouton CommandButtonRechercheVin, qu'il faut le mettre, ce code !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
yodjeseb Messages postés 39 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 10 février 2014
21 janv. 2014 à 20:10
Relis ce que je t'ai écris, le boutton "rechercher" !!!

--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 21/01/2014 à 20:27
Cela commence à devenir lourd, ami ...
(et c'est toi, qui me demandes de me ... relire !!!)
Il n'y a aucun bouton nommé "rechercher" sur ton userform nommé "ChoisirUnVin"
Ton userform contient les contrôles suivants :

2 labels : Label1 et Label2
1 textbox : TextBox1
1 listbox : ListBox1
1 seul bouton de commande : CommandButtonRechercheVin

et rien d'autre ( ni CommanButton2, ni "Rechercher")
et tout ce que tu as mis dans l'évènement click de CommanButton2 ne risque donc jamais d'être exécuté !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
yodjeseb Messages postés 39 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 10 février 2014
21 janv. 2014 à 20:32
Je viens de voir, c'est parce que j'ai collé ton code rapidement sans modifier, l'ami.
Et ton code plante toujours essaie plusieurs fois tu verras.

--
0
yodjeseb Messages postés 39 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 10 février 2014
21 janv. 2014 à 20:38
Ca plante lorsqu'il y a un résultat unique !!! Non.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 21/01/2014 à 20:53
"Je viens de voir, c'est parce que j'ai collé ton code rapidement sans modifier, l'ami."
Et quoi d'autre encore, de "possible" et de "c'est parce-que ..." ?
Excuse-moi, mais je t'"avais demandé de faire l'effort de m'envoyer ton classeur "ne marchant pas" tel quel ... et non de " l'à peu près" (j'ai de mon côté fait l'effort de mettre en route un PC dédié aux "risques" ...)
Alors : prends ton temps et mets à disposition ton classeur exact.?
on en est à combien de messages, pour cette broutille, déjà ?

PS et sans compter que tu t'es arrangé, en m'envoyant un classeur à cellules verrouillées, pour qu'il devienne ardu de modifier tes données (et tenter de provoquer le "cas unique" !)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 janv. 2014 à 21:20
Et je viens par ailleurs d'analyser ce que tu fais dans l'évènement activate de ta feuille "Ma Cave" ===>>
1) Ce qui y est fait n'a rien à voir avec la difficulté exposée dans la présente discussion. Je ne veux même pas m'y intéresser, donc.
2) pour créer un cas "unique" il me faudrait agir un peu partout (et je n'en aI pas la moindre intention, puisque autre sujet
En conséquence : ===>> deux classeurs, donc :
- un avec cas "multiple"
et
- un avec cas "unique"
Le reste ne me regarde pas.
0
Rejoignez-nous