Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

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)
 

paskikic

XLDnaute Occasionnel
Re : erreur vba

bonjour messieurs,
ca y est mon code fonctionne c est rien n y comprendre rien qu en supprimant ma variable Trouve_date_n1 le code fonctionne

c est DINGUE !!!!!!! en tout merci a vous tous pour votre aide
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…