Résultat de requête Null

  • Initiateur de la discussion Initiateur de la discussion g6k
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

g6k

Guest
Bonjour à tous,
J'aimerais obtenir de l'aide : J'ai une macro qui fait appel à une requete access paramétrée. Mon probleme c'est que le résultat de la requete peut être Null.
Je voudrais insérer dans ma macro une instruction qui me permettrait de rebondir sur une telle situation, mais je ne sais pas comment on "traduit" NULL en VBA (sur Excel). Mon exemple sera plus explicite :


Dim bd As DAO.Database
Dim rs As Recordset

Set bd = OpenDatabase("R:\DOP\ACH\INT\Reporting\Bases ACCESS\Copie_ACCESS-MAXPROD-ACHATS.mdb")
Set q = bd.QueryDefs("JD - CA par fournisseur (hors taxes)") 'nom de ma requête

n$ = Cells(i, 2)

q.Parameters("COMPANY ?") = n$
q.Parameters("Date début période ?") = d2
q.Parameters("Date fin période ?") = d1

Set rs = q.OpenRecordset

If résultat de la requete Null Then
Cells(i, 7) = "COMPANY non valide"

Else
Cells(i, 7).Value = rs.Fields("CA_hors_taxes")
Cells(i, 8) = Cells(i, 7) / Cells(i, 6)
End If


Si quelqu'un sait par quoi je dois remplacer ce qui est en rouge...??
Merci d'avance
g6k
 
Re : Résultat de requête Null

Re,

comme ça, juste avec ce bout de code, aucune idée.... qu'est-ce qui ne fonctionne pas ? qu'est-ce que tu attend comme résultat et qui ne se passe pas ?
que veut dire le
If c is nothing then...

Pardon,

Voila la procédure, elle recherche des donnéees dans une feuille excel. Ce que j'aimerais :Si la feuille est vide, "siret non valide" est inscrit en rouge ; Si le texte "chiffre d'affaires" est introuvable alors "aucune publication" est inscrit en couleur. Si le chiffre d'affaire est trouvé alors il se note en noir.

Dim text1, text2 As String
Dim c, j As Range
Dim ligne1, ligne2, colonne1, colonne2 As Integer


If Cells.Find("*") Is Nothing Then
Cells(i, 6).Font.ColorIndex = 3
ca = "SIRET non valide"
d1 = ""
d2 = ""

Else

text1 = "chiffre d'affaires"
text2 = "clôture de l'exercice"

Set c = Range("A1:A500").Find(text1, lookat:=xlPart)
Set j = Range("A1:A500").Find(text2, lookat:=xlPart)

If c Is Nothing Then
Cells(i, 6).Font.ColorIndex = 32
ca = "Aucune publication"
d1 = ""
d2 = ""

Else
ligne1 = c.Row
colonne1 = c.Column
ligne2 = j.Row
colonne2 = j.Column
ca = Cells(ligne1, colonne1 + 1)
d1 = Cells(ligne2, colonne2 + 1)

l = InStr(ca, "Euros")
ca = (Mid(ca, 1, l - 2))
l2 = InStr(ca, "K")
If l2 <> 0 Then ca = Val(Mid(ca, 1, l2 - 2)) * 1000

mois$ = Mid(d1, 4, 2)
annee$ = Mid(d1, 7)
If mois$ = "12" Then
mois$ = "01"
Else
mois$ = Val(mois$) + 1
annee$ = Val(annee$) - 1
End If
d2 = Trim(mois$) + "/" + "01" + "/" + Trim(annee$)


End If
End If
Sheets("feuil1").Select
Cells(i, 6) = ca
Cells(i, 5) = d1
Cells(i, 4) = d2


ya bcp de traitement de caractère dsl
Merci
g6k
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour