Pb code VBA
Fermé
S_D
Messages postés
22
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
25 août 2009
-
21 août 2009 à 01:29
S_D - 27 août 2009 à 22:32
S_D - 27 août 2009 à 22:32
A voir également:
- Pb code VBA
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
14 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
21 août 2009 à 13:42
21 août 2009 à 13:42
Bonjour,
je crois savoir d'ou vient ton problème, voici le code avec correction :
Sub rajout()
'variable de parcours des feuilles
Dim i As Integer
Dim J As Integer
Dim X As Range
Dim Y As Range
Dim N, NY As Integer
Dim Mois as integer
Mois = "'Aug 08"
Dim BUQu(8) As String
'File query
BUQu(5) = "MCT"
BUQu(6) = "MOT"
BUQu(7) = "PNE"
BUQu(8) = "PSS"
For J = 5 To J = 8
if j = 5 then
BUQU ="MCT"
end if
if j= 6 then
BUQU= "MOT"
end if
if j=7 then
BUQU = "PNE"
end if
if j= 8 then
BUQU = "PSS"
end if
'trouver le mois ds le fichier de comparaison pr chaque feuille ATTEBTION SALES/ORDERS
Y = Workbooks("Orders Comparison 08 v 09").Sheets(BUQu & " - Orders").Find(Mois)
NY = Y.Column
For i = 1 To 500
With Workbooks("Orders Comparison").Sheets(BUQu & " - Orders")
If .Find(Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 1)) Is Empty Then
.Sheets(BUQu).Rows(8).Insert Shift:=xlDown
'remplissage
.Cells(8, 1).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 2).Value
.Cells(8, NY).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 3).Value
Else
X = .Find(Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 1))
.Cells(X.Row, NY).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 3).Value
End If
End With
Next i
Next J
End Sub
je crois savoir d'ou vient ton problème, voici le code avec correction :
Sub rajout()
'variable de parcours des feuilles
Dim i As Integer
Dim J As Integer
Dim X As Range
Dim Y As Range
Dim N, NY As Integer
Dim Mois as integer
Mois = "'Aug 08"
Dim BUQu(8) As String
'File query
BUQu(5) = "MCT"
BUQu(6) = "MOT"
BUQu(7) = "PNE"
BUQu(8) = "PSS"
For J = 5 To J = 8
if j = 5 then
BUQU ="MCT"
end if
if j= 6 then
BUQU= "MOT"
end if
if j=7 then
BUQU = "PNE"
end if
if j= 8 then
BUQU = "PSS"
end if
'trouver le mois ds le fichier de comparaison pr chaque feuille ATTEBTION SALES/ORDERS
Y = Workbooks("Orders Comparison 08 v 09").Sheets(BUQu & " - Orders").Find(Mois)
NY = Y.Column
For i = 1 To 500
With Workbooks("Orders Comparison").Sheets(BUQu & " - Orders")
If .Find(Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 1)) Is Empty Then
.Sheets(BUQu).Rows(8).Insert Shift:=xlDown
'remplissage
.Cells(8, 1).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 2).Value
.Cells(8, NY).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 3).Value
Else
X = .Find(Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 1))
.Cells(X.Row, NY).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 3).Value
End If
End With
Next i
Next J
End Sub
S_D
Messages postés
22
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
25 août 2009
24 août 2009 à 18:24
24 août 2009 à 18:24
Merci de ta reponse, mais cela ne marche pas plus .......
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
24 août 2009 à 20:32
24 août 2009 à 20:32
Re,
Je sais ce qui ne va pas :
Sub rajout()
'variable de parcours des feuilles
Dim i As Integer
Dim J As Integer
Dim X As Range
Dim Y As Range
Dim N, NY As Integer
Dim Mois as integer
Mois = "'Aug 08"
Dim BUQu(8) As String
'File query
BUQu(5) = "MCT"
BUQu(6) = "MOT"
BUQu(7) = "PNE"
BUQu(8) = "PSS"
For J = 5 To J = 8
if j = 5 then
BUQU ="MCT"
end if
if j= 6 then
BUQU= "MOT"
end if
if j=7 then
BUQU = "PNE"
end if
if j= 8 then
BUQU = "PSS"
end if
'trouver le mois ds le fichier de comparaison pr chaque feuille ATTEBTION SALES/ORDERS
Workbooks("Orders Comparison 08 v 09").activate
Sheets(BUQu & " - Orders").select
cells.select
Y = find(Mois) 'je crois que c'est cette ligne qui ne risque pas de marcher mais essaie
NY = Y.Column 'essaie mais cette ligne ne te renverra pas le numéro de colonne (je n'en suis pas sure
'je le réécrirais comme ça
'i=8
'j=2
'cells(i,j).select
'do while selectionn <> mois
'j=j+1
'cells(i,j).select
'loop
'NY= j
For i = 1 To 500
cells(i,1).select
If Cells(i, 1) Is Empty Then
Sheets(BUQu).Rows(8).Insert Shift:=xlDown
'remplissage
Cells(8, 1) = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 2)
Cells(8, NY).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 3)
Else
Workbooks("Qury Orders").activate
sheets(BUQu).select
X = Find(selection)
Cells(i, NY).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 3).Value
End If
Next i
Next J
End Sub
'essaie mais je ne suis pas sure que ton code fonctionne. Parce que je ne suis pas sure que vba comprenne find et NY.column.
Le mieux est de faire une boucle comme je l'ai fait. Fais le par F8 et dis mois quelle ligne bloque
Je sais ce qui ne va pas :
Sub rajout()
'variable de parcours des feuilles
Dim i As Integer
Dim J As Integer
Dim X As Range
Dim Y As Range
Dim N, NY As Integer
Dim Mois as integer
Mois = "'Aug 08"
Dim BUQu(8) As String
'File query
BUQu(5) = "MCT"
BUQu(6) = "MOT"
BUQu(7) = "PNE"
BUQu(8) = "PSS"
For J = 5 To J = 8
if j = 5 then
BUQU ="MCT"
end if
if j= 6 then
BUQU= "MOT"
end if
if j=7 then
BUQU = "PNE"
end if
if j= 8 then
BUQU = "PSS"
end if
'trouver le mois ds le fichier de comparaison pr chaque feuille ATTEBTION SALES/ORDERS
Workbooks("Orders Comparison 08 v 09").activate
Sheets(BUQu & " - Orders").select
cells.select
Y = find(Mois) 'je crois que c'est cette ligne qui ne risque pas de marcher mais essaie
NY = Y.Column 'essaie mais cette ligne ne te renverra pas le numéro de colonne (je n'en suis pas sure
'je le réécrirais comme ça
'i=8
'j=2
'cells(i,j).select
'do while selectionn <> mois
'j=j+1
'cells(i,j).select
'loop
'NY= j
For i = 1 To 500
cells(i,1).select
If Cells(i, 1) Is Empty Then
Sheets(BUQu).Rows(8).Insert Shift:=xlDown
'remplissage
Cells(8, 1) = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 2)
Cells(8, NY).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 3)
Else
Workbooks("Qury Orders").activate
sheets(BUQu).select
X = Find(selection)
Cells(i, NY).Value = Workbooks("Qury Orders").Worksheets(BUQu).Cells(i, 3).Value
End If
Next i
Next J
End Sub
'essaie mais je ne suis pas sure que ton code fonctionne. Parce que je ne suis pas sure que vba comprenne find et NY.column.
Le mieux est de faire une boucle comme je l'ai fait. Fais le par F8 et dis mois quelle ligne bloque
S_D
Messages postés
22
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
25 août 2009
24 août 2009 à 23:59
24 août 2009 à 23:59
Ok je vais essayer, merci!
Find marche , je l'ai utilise ds un autre programme....
Find marche , je l'ai utilise ds un autre programme....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
S_D
Messages postés
22
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
25 août 2009
25 août 2009 à 01:55
25 août 2009 à 01:55
toujours pas ......
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
25 août 2009 à 08:50
25 août 2009 à 08:50
Bonjour,
Sur quelle ligne bloque t il?
Sur quelle ligne bloque t il?
S_D
Messages postés
22
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
25 août 2009
25 août 2009 à 16:07
25 août 2009 à 16:07
Bonjour,
je sais pas c'est vraiment bizarre , il se passe rien. Ton programme comme le mien , compilent , mais il ne se passe rien. Tres bizarre ......
Pourtant je pense pas avoir d'erreur d'algo .....
Je le revois et je reviens vers toi avec un autre algo ....
Merci
je sais pas c'est vraiment bizarre , il se passe rien. Ton programme comme le mien , compilent , mais il ne se passe rien. Tres bizarre ......
Pourtant je pense pas avoir d'erreur d'algo .....
Je le revois et je reviens vers toi avec un autre algo ....
Merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
25 août 2009 à 18:42
25 août 2009 à 18:42
Bonjour,
Désolé de taper l'incruste mais en lisant le code je relève plusieurs incohérences ... Il est étonnant que le compilateur n'est pas levé les exceptions:
Par exemple :
Mois est de type Integer (nombre entier) et ici on lui attribut une chaîne de caractères ???
Dans le même ordre :
X et Y sont déclarés comme des objets, mais ne sont pas instanciés.
N'est pas la syntaxe pour instancier un objet.
Autre incohérence:
On ne passe jamais dans la boucle.
Pourquoi déclarer un tableau dimensionné à 8 alors que l'on a besoin que de 4 éléments ?
2 autres questions:
Sur quel classeur se trouve la macro, et le 2ème classeur était-il déjà ouvert ?
Le code a-t-il été passé en mode débogage (touche F8) ?
;o)
Désolé de taper l'incruste mais en lisant le code je relève plusieurs incohérences ... Il est étonnant que le compilateur n'est pas levé les exceptions:
Par exemple :
Dim Mois as integer Mois = "'Aug 08"
Mois est de type Integer (nombre entier) et ici on lui attribut une chaîne de caractères ???
Dans le même ordre :
Dim X As Range Dim Y As Range
X et Y sont déclarés comme des objets, mais ne sont pas instanciés.
Y = find(Mois)
N'est pas la syntaxe pour instancier un objet.
Autre incohérence:
For J = 5 To J = 8
On ne passe jamais dans la boucle.
Pourquoi déclarer un tableau dimensionné à 8 alors que l'on a besoin que de 4 éléments ?
2 autres questions:
Sur quel classeur se trouve la macro, et le 2ème classeur était-il déjà ouvert ?
Le code a-t-il été passé en mode débogage (touche F8) ?
;o)
S_D
Messages postés
22
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
25 août 2009
25 août 2009 à 22:39
25 août 2009 à 22:39
Bonjour ,
1/ parce que en vrai j'utilise les 8 (la c la partie du code que je bosse), Du coups g fait un copier-coller ....
2/cette macro utilise est sur un autre classeur que celui ou on ecrit, sur qury ....
3/ le month je l'ai releve .... eheh
4/Y:
Set Y = Workbooks("Crouzet Orders Comparison 08 v 09").Sheets(BUQu(J + 4)).Range("A1:Z500").Find(Mois)
5/ Le probleme c qu one ne passe pas ds la boucle , c'estr ca que je comprends pas .
Merci de t'interessaer toi aussi a mon ca !
Merci
1/ parce que en vrai j'utilise les 8 (la c la partie du code que je bosse), Du coups g fait un copier-coller ....
2/cette macro utilise est sur un autre classeur que celui ou on ecrit, sur qury ....
3/ le month je l'ai releve .... eheh
4/Y:
Set Y = Workbooks("Crouzet Orders Comparison 08 v 09").Sheets(BUQu(J + 4)).Range("A1:Z500").Find(Mois)
5/ Le probleme c qu one ne passe pas ds la boucle , c'estr ca que je comprends pas .
Merci de t'interessaer toi aussi a mon ca !
Merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
25 août 2009 à 22:57
25 août 2009 à 22:57
Pour passer dans la boucle :
For i = 5 to 8
'....
Next i
Set Y = Workbooks("Crouzet Orders Comparison 08 v 09").Sheets(BUQu(J + 4)).Range("A1:Z500")
Find(mois) est une fonction ou une méthode, non une propriété.
Y est un objet Range.
Encore un peu de courage, tu ne vas pas tarder à trouver.
;o)
For i = 5 to 8
'....
Next i
Set Y = Workbooks("Crouzet Orders Comparison 08 v 09").Sheets(BUQu(J + 4)).Range("A1:Z500")
Find(mois) est une fonction ou une méthode, non une propriété.
Y est un objet Range.
Encore un peu de courage, tu ne vas pas tarder à trouver.
;o)
S_D
Messages postés
22
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
25 août 2009
25 août 2009 à 23:46
25 août 2009 à 23:46
Set Y = Workbooks("Orders Comparison 08 v 09").Sheets(BUQu(J + 4)).Range("A1:Z500").Find(Mois)
voila pour Find. G craque , je l'ai deja utilise ds une autre partie de programme..... et ca marche parfaitement.. Ca fait deux jours que je patine ....
voila pour Find. G craque , je l'ai deja utilise ds une autre partie de programme..... et ca marche parfaitement.. Ca fait deux jours que je patine ....
S_D
Messages postés
22
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
25 août 2009
25 août 2009 à 23:54
25 août 2009 à 23:54
Je comprends pas pourquoi la boucle s'enclanche pas
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 août 2009 à 00:10
26 août 2009 à 00:10
As tu corrigé:
For j = 5 to j = 8 par For j = 5 to 8
For j = 5 to j = 8 par For j = 5 to 8
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
26 août 2009 à 00:01
26 août 2009 à 00:01
Es-tu sûr de la syntaxe ?
Je te conseille d'utiliser le For Each ... Next
;o)
Je te conseille d'utiliser le For Each ... Next
Dim plage As Range Dim cl Dim col As Long Dim lig As Long Dim Mois As String Mois = "Aout" Set plage = Sheets(1).Range("A1:Z500") For Each cl In plage If cl.Value = Mois Then col = cl.Column lig = cl.Row MsgBox "Colonne: " & col & ", Ligne: " & lig End If Next cl
;o)