erreur vba

paskikic

XLDnaute Occasionnel
bonjour, les xlnautes



j ai un petit soucis de code vba , sur le debut de code suivant j ai une erreur d objet requis sur le ligne en rouge , mais je n arrive pas a trouver pourquoi.

y a t il qqn qui pourrait m aiguiller

merci a vous



Dim Trouve_date As Range, Trouve_ville As Range,Trouve_villen1 As Range, PlageDeRecherche As Range
Dim Date_Cherchee As String, Ville_Cherchee As String, Ville_Chercheen1 As String
Dim ligne_date As String, ville As String

'********* à adapter ***********
'affectation de valeurs aux variables :
'on cherche le mot "Trouve"
Date_Cherchee = Sheets("CA semaine").Range("D9")
Ville_Cherchee = Sheets("CA semaine").Range("A11")
ville_chercheen1=cdate(now)
'dans la première colonne de la feuille active
Set PlageDeRecherche = Sheets("BD").Range("A1:IV65000")
'*******************************

'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve_date = PlageDeRecherche.Cells.Find(what:=Format(Date_Cherchee, "mm/dd/yyyy"), LookAt:=xlWhole)
Set Trouve_daten1 = PlageDeRecherche.Cells.Find(what:=Format(Date_Chercheen1, "mm/dd/yyyy"), LookAt:=xlWhole)
Set Trouve_ville = PlageDeRecherche.Cells.Find(what:=Ville_Cherchee, LookAt:=xlWhole)
 

Papou-net

XLDnaute Barbatruc
Re : erreur vba

Bonjour paskikic,

Je ne saurais être catégorique devant un code partiel, mais je remarque que la variable "Date_Cher cheen1" n'est pas définie. D'autre part, elle comporte un espace mais comme la ligne du dessus fonctionne, je penche pour une erreur de transcription dans ton message.

Cordialement.
 

paskikic

XLDnaute Occasionnel
Re : erreur vba

bonjour a tous,

bebere non ca ne marche pas helas

je vous met le code complet au cas ou, qqn a une idee
meme en renommant ma variable ca me donne toujour la meme chose

un grand merci a vous merci


Sub CA_MAg() 'edite sur feuille CA SEMAINE les ventes des journnees

'déclaration des variables :
Dim Trouve_date As Range, Trouve_ville As Range, PlageDeRecherche As Range
Dim Trouve_date_n1 As String
Dim Date_Cherchee As Date, Date_cherchee_n1 As String, Ville_Cherchee As String
Dim ligne_date As String, ligne_date_n1 As String, ville As String
Dim nbr_boutique As String, fin_jour As String, fin_semaine As String
Dim datetest As String, Num_semaine As String, num_jour As String
Dim myDate As Date, myYear As Integer, myWeek As Byte


nbr_boutique = Application.WorksheetFunction.CountA(Sheets("BD").Rows(5))
fin_jour = nbr_boutique * 6


For i = 4 To 22 Step 3

For a = 11 To fin_jour Step 5


'********* à adapter ***********

'trouve n°semaine en cour
datetest = CDate(Sheets("CA semaine").Cells(9, i))
Num_semaine = Format(datetest, "ww", vbMonday, vbFirstFourDays)
num_jour = Weekday(Dte, vbMonday) + 1 'Format(datetest, "dddd")

'recherche de la date n-1

myYear = 2015
myWeek = Num_semaine
myDate = 7 * myWeek + DateSerial(myYear, 1, 1) - ((DateSerial(myYear, 1, 1)) Mod 7) + num_jour

'affectation de valeurs aux variables :

Date_Cherchee = CDate(Sheets("CA semaine").Cells(9, i))
Date_cherchee_n1 =CDate(myDate)
Ville_Cherchee = Sheets("CA semaine").Cells(a, 1)
'dans la première colonne de la feuille active
Set PlageDeRecherche = Sheets("BD").Range("A1:IV65000")

'*******************************

'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)

Set Trouve_date = PlageDeRecherche.Cells.Find(what:=Date_Cherchee, LookAt:=xlWhole)
Set Trouve_date_n1 = PlageDeRecherche.Cells.Find(what:=Date_cherchee_n1, LookIn:=xlValues, LookAt:=xlWhole)
Set Trouve_ville = PlageDeRecherche.Cells.Find(what:=Ville_Cherchee, LookAt:=xlWhole)


'traitement de l'erreur possible : Si on ne trouve rien :

If Trouve_date Is Nothing Or Trouve_ville Is Nothing Then

'ici, traitement pour le cas où la valeur n'est pas trouvée
If Trouve_date Is Nothing Then
MsgBox (" pas de date trouvee") & Date_Cherchee
Exit Sub

If Trouve_date Is Nothing Then
MsgBox (" pas de date N-1 trouvee") & Date_Cherchee
Exit Sub
Else
MsgBox (" pas de ville trouvee") & Ville_Cherchee
Exit Sub
End If
Else
MsgBox (" pas de ville trouvee") & Ville_Cherchee
Exit Sub
End If

Else
'ici, traitement pour le cas où la valeur est trouvée
' AdresseTrouvee = Trouve.Address
ligTrouve_date_n1ne_date = Trouve_date.Row
' ligne_date_n1 = .Row
ville = Trouve_ville.Column

End If


With Sheets("CA semaine")

.Cells(a, i) = Sheets("BD").Cells(ligne_date, ville + 0) 'CA HT
.Cells(a, i).Offset(1, 0) = Sheets("BD").Cells(ligne_date, ville + 1) 'CA HT DERIVE
.Cells(a, i).Offset(2, 0) = Sheets("BD").Cells(ligne_date, ville + 2) 'nb transaction
.Cells(a, i).Offset(3, 0) = Sheets("BD").Cells(ligne_date, ville + 3) 'nb article vendu
.Cells(a, 25) = (Cells(a, 25) + Cells(a, i))
.Cells(fin_jour + 5, i) = (Cells(fin_jour + 5, i) + Cells(a, i))
' .Cells
End With

Set PlageDeRecherche = Nothing
Set Trouve_date = Nothing
Set Trouve_date_n1 = Nothing
Set Trouve_ville = Nothing



Next a

For b = 11 To fin_jour Step 5
On Error Resume Next

With Sheets("CA semaine")

.Cells(b, i).Offset(0, 1) = Cells(b, i) / Cells(fin_jour + 5, i) '%CA HT
.Cells(b, i).Offset(1, 1) = Cells(b, i).Offset(1, 0) / Cells(b, i) '%CA HT DERIVE
.Cells(b, i).Offset(2, 1) = Cells(b, i) / Cells(b, i).Offset(2, 0) '%nb transaction
.Cells(b, i).Offset(3, 1) = Cells(b, i).Offset(3, 0) / Cells(b, i).Offset(2, 0) '%nb article vendu

'evolution Vente

.Cells(b, i).Offset(0, 2) = Cells(b, i) / Sheets("BD").Cells(ligne_date_n1, ville + 0) ' evolution CA HT
.Cells(b, i).Offset(0, 2) = Cells(b, i) / Sheets("BD").Cells(ligne_date_n1, ville + 1) ' evolution CA HT DERIVE

End With




Next b



Next i

End Sub
 

Bebere

XLDnaute Barbatruc
Re : erreur vba

Paskikic
essaye avec ce code, à adapter
Sub FindDate()
Dim strdate As String
Dim rCell As Range
Dim lReply As Long

strdate = Application.InputBox(Prompt:="Enter a Date to Locate on This Worksheet", _
Title:="DATE FIND", Default:=Format(Date, "Short Date"), Type:=1)

'Cancelled
If strdate = "False" Then Exit Sub

strdate = Format(strdate, "Short Date")

On Error Resume Next
Set rCell = Cells.Find(What:=CDate(strdate), After:=Range("A1"), LookIn:=xlFormulas _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
On Error GoTo 0

If rCell Is Nothing Then
lReply = MsgBox("Date cannot be found. Try Again", vbYesNo)
If lReply = vbYes Then Run "FindDate":
End If
End Sub
 

Bebere

XLDnaute Barbatruc
Re : erreur vba

bonjour Paskikic
objet requis car il ne trouve pas(Set Trouve_date =nothing)
'dans la première colonne de la feuille active
Set PlageDeRecherche = Sheets("BD").Range("A1:A65000")

essaye avec la méthode evaluate([])

Set Trouve_date = PlageDeRecherche.Find(what:=[Cells(9, i)],lookin:=xlvalues, LookAt:=xlWhole)
 

Dranreb

XLDnaute Barbatruc
Re : erreur vba

Forcément: un string n'est pas un objet !
Déclarez la As Range ou alors ne faites pas de Set dessus !
Les deux sont incompatibles c'est pourquoi je les ai mis en gras. Je pensais que vous comprendriez.
Supprimer la déclaration au lieu de la faire correctement n'est pas une solution, c'est se foutre du problème pour être sûr de le rencontrer une autre fois au tournant.
 

Discussions similaires

Statistiques des forums

Discussions
314 222
Messages
2 107 480
Membres
109 837
dernier inscrit
Baabi