Erreur 424 Objet requis Macro Excel [Résolu]

Messages postés
65
Date d'inscription
mercredi 18 août 2004
Dernière intervention
31 janvier 2006
- - Dernière réponse : chouchouk8917
Messages postés
1
Date d'inscription
samedi 12 février 2011
Dernière intervention
8 mai 2012
- 8 mai 2012 à 20:35
Bonjour,

Je dois faire une macro avec excel qui consiste à parcourir une colonne, et pour chaque ligne trouver la référence correspondante dans une table de ma base ORACLE.

J'ouvre ma connexion, et lorsque j'exécute ma requete, il met l'erreur 424 "Objet Requis" sur une ligne de mon code ( rouge ci dessous ).
Je pense que le souci vient de la connexion passée en paramètre.

Pouvez vous m'aider ?

Merci

Voici mon code :

Sub Macro3()


' Connexion à la base


Dim connString As String
connString = "Provider=MSDAORA.1;Server=XXXX;Data Source=XXXXX;USER ID=XXXX;PASSWORD=XXXX"

'Création de l'objet connection
Set oConn = New ADODB.Connection
oConn.ConnectionString = connString

'Ouverture de la connexion
oConn.Open

'MsgBox "Connexion réussie"

For i = 1 To 2000

Cells(i, 1).Select

If Not IsNull(Cells(i, 1).Value) Then

Set rst = New ADODB.Recordset
Sql = "Select AVC from L3CGROUP.ITMFACILIT where ITMREF='" & Cells(i, 1).Value & "';"
rst.Open Sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

Cells(i, 2).Value = rst!AVC

Else
Cells(i, 2).Value = "Rien"
End If

Next

oConn.Close

End Sub
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
65
Date d'inscription
mercredi 18 août 2004
Dernière intervention
31 janvier 2006
3
Merci
Merci, jai réussi à le faire finalement !

Voici ma solution, plus complexe que la tienne :

Sub RequetePMP()


' Connexion à la base


Dim oConn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim cmdCommand As ADODB.Command

Dim connString As String

connString = "Provider=MSDAORA.1;Server=XXXX;Data Source=XXXX;USER ID=XXXX;PASSWORD=XXXX"

'Création de l'objet connection
Set oConn = New ADODB.Connection
oConn.ConnectionString = connString

'Ouverture de la connexion
oConn.Open

'MsgBox "Connexion réussie"

For i = 1 To 2000

Cells(i, 1).Select

If (Cells(i, 1).Value <> "") Then

Set cmdCommand = New ADODB.Command
Set cmdCommand.ActiveConnection = oConn
With cmdCommand
.CommandText = "Select AVC_0 from L3CGROUP.ITMMVT where ITMREF_0='" & Cells(i, 1).Value & "'"
.CommandType = adCmdText
'.Execute
End With

Set rst = New ADODB.Recordset
Set rst.ActiveConnection = oConn
'Sql = "Select AVC from L3CGROUP.ITMFACILIT where ITMREF='" & Cells(i, 1).Value & "';"
rst.Open cmdCommand

If rst.EOF = False Then
Cells(i, 4).Value = rst.Fields(0)
End If
Else
Cells(i, 4).Value = ""
End If

Set cmdCommand = Nothing
Set rst = Nothing

Next

oConn.Close

End Sub



Merci de ton aide !!!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
Salut
- Ta syntaxe RST.Open est bizarre (mais j'y connais pas grand chose en Excel).
- Tu n'arrêtes pas de rédimensionner ton RST ! Il faut utiliser Close de temps en temps !
For i = 1 To 2000
Cells(i, 1).Select
If Not IsNull(Cells(i, 1).Value) Then
<STRIKE>Set rst = New ADODB.Recordset
</STRIKE> Sql = "Select AVC from L3CGROUP.ITMFACILIT where ITMREF='" & Cells(i, 1).Value & "';"
rst.Open Sql, oConn , adOpenKeyset, adLockOptimistic
If rst.RecordCount > 0 Then
Cells(i, 2).Value = rst!AVC
Else
Cells(i, 2).Value = "Rien"
End If
rst.Close
Else
Cells(i, 2).Value = "Rien"
End If
Next i
Set rst = Nothing

Il est bizarre aussi que ton nom de table comporte un point ...
Rappel : Si ITMREF est déclaré comme numérique dans ta DB, il ne faut pas utiliser de ' pour encadrer les valeurs dans la syntaxe SQL !

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
Messages postés
2
Date d'inscription
mardi 7 août 2007
Dernière intervention
8 août 2007
0
Merci
moi j'ai la meme message 'erreur 424 ':un objet est requis
ce message apparait quand je veux aller d'une application Form1 à une autre Form2 en écrivant   Form2.Show
pourquoi?
Messages postés
1
Date d'inscription
samedi 12 février 2011
Dernière intervention
8 mai 2012
0
Merci
bonjour ,
en fait un plutot une erreur 1004 erreur définie par l'application ou l'objet , ce que j'essaye de faire c'est de prendre un nom à partir d'une combobox et essayer de chercher son équivalent dans les feuilles excel, et puis quand il va trouver la feuille correspondante , le doit chercher dedans un nom contenu dans un autre combobox voici mon code. ( je suis vraiment nulle en VBA c'est la première fois que je l'utilise sans avoir des notions Programmation orientée objet ). je vous serai vraiment reconnaissante si vous m'aidiez!


Private Sub CommandButton6_Click()
'chercher dans les feuilles le secteur correspondant à l'entreprise selectionnée
Dim N As Integer
N = 3
Do While N < 13 And ComboBox1.Text <> Worksheets(N).Name
N = N + 1
Loop
'chercher la zone dédiée à l'entreprise
Dim I As Integer
Dim J As Integer
Do While I < 90
Do While J < 9000 And ComboBox2.Text <> Worksheets(N).Cells(I, J).Name
merci d'avance

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.