Pbl error 1004 avec SuperRechercheV

G

goodvibes

Guest
Salut à tous

j'utilise la "superRechercheV" de Thierry mais j'ais un pblm
Lorsque je l'utilise g une "erreur 1004 défini par l'application ou par l'objet"
J'ai l'erreur dans le

With Cell.Offset(0, 1).Validation
.Delete
.Add Type:=xlValidateList, _
Operator:=xlBetween, _
AlertStyle:=xlValidAlertStop, _
Formula1:=MyArray(ii)
End With

on me dit que MyArray(ii)= " ,a,b"
(a et b étant mes valeurs)

Quelqun à t'il une idée de ce que je dois faire?
 
@

@+Thierry

Guest
Salut Goodvibes, le Forum

Humm, il faudrait déjà savoir comment tu initialises ton Array ? car le plantage vient de là... En ne voyant que cette partie du code, on ne peut pas savoir.

@Suivre...

Bonne Soirée
@+Thierry
 
G

goodvibes

Guest
Salut à Thierry et à tous

voila la macro entière si ça t'en dit d'avantage :

Dim MyArray(0 To 250) As String 'adapter
Dim Cell As Range
Dim Plage As Range
Dim WSSource As Worksheet
Dim WSCible As Worksheet
Dim i As Integer
Dim ii As Integer
Dim iii As Integer

Set WSSource = sheets("Intervention_Type_Machine")
Set Plage = sheets("Planning").Range("A27") 'à adapter

ii = 0
For Each Cell In Plage
For i = 1 To 250 ' à adapter
If Cell.Value = "" Then Exit Sub
If Cell.Value = WSSource.Cells(i, 1) Then
MyArray(ii) = MyArray(ii) & ", " & WSSource.Cells(i, 2).Value
Cell.Offset(0, 1).Value = WSSource.Cells(i, 2)
iii = iii + 1
End If
Next i
If MyArray(ii) = "" Then
MsgBox "Pas de Ville avec ce code Postal : " & Cell.Value, vbCritical, "Thierry's Démo"
Exit Sub
End If
With Cell.Offset(0, 1).Validation
.Delete
.Add Type:=xlValidateList, _
Operator:=xlBetween, _
AlertStyle:=xlValidAlertStop, _
Formula1:=MyArray(ii)
End With
If iii > 1 Then
Cell.Offset(0, 1).Value = ""
End If
MyArray(ii) = ""
ii = 0
iii = 0
Next Cell
End Sub

Bonne journée tout le monde
 
G

goodvibes

Guest
Re bonjour

Hou la la ca ce complique.

Maintenant g :
For Each Cell In Plage
For i = 0 To 250 ' à adapter
If Cell.Value = "" Then Exit Sub
If Cell.Value = WsSource.Cells(i, 0) Then
MyArray(ii) = MyArray(ii) & ", " & WsSource.Cells(i, 2).Value
Cell.Offset(0, 1).Value = WsSource.Cells(i, 2)
iii = iii + 1

il me dit que Cell.Value = "abc" (normal c ma valeur cherchée) mais il me dit que WsSource.Cells(i, 1) est une <erreur définie par l'application ou l'objet")

je comprend plus A l'aide!!!

lol ;((
 
@

@+Thierry

Guest
Bonjour le Forum, GoodVibes

Vite fait car là je dois m'absenter, pour ta première question c'est déjà la désynchronisation de ton array...

Dim MyArray(0 To 250)
...
For i = 1 To 250 '

Ce n'est pas la même dimension ! soit c'est :
Dim MyArray(0 To 249)
...
For i = 1 To 250 '

Ou encore :

Option Base 1

Sub Tamacro()
Dim MyArray(1 To 250)
...
For i = 1 To 250 '


Quant à ta deuxième question, il n'existe pas de Cells(0,2) ! c'est çà ton message d'erreur !!!

Donc à changer la valeur du "i"
For i = 0 To 250 ' (de 1 to 250)

Bon appétit
@+Thierry
 
@

@+Thierry

Guest
Bonsoir GoodVibes, le Forum

Non ce n'est pas si compliqué que çà, il faut surtout être hyper logique, dans cet exemple :
de 0 à 249 il y a bien 250 items... (le 0 compte)

Pour ta dernière question, je ne comprends pas, mais je pense que celà peut faire l'objet d'un nouvel fil avec des plus amples explication ?

Sinon cherche à "Macro évènementielle"...

Bonne Soirée et bon week end
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 899
Membres
103 982
dernier inscrit
krakencolas