[Déplacé VBA]Problème de syntaxe [Résolu]

nadeson 11 Messages postés lundi 28 mai 2012Date d'inscription 6 juin 2012 Dernière intervention - 22 mai 2012 à 15:36 - Dernière réponse : rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention
- 24 mai 2012 à 09:29
Bonjour a tous,
Je suis débutant en programmation et j'ai une petit souci avec mon programme
Sub fpp()

Dim rs As New ADODB.Recordset
Dim cN As New ADODB.Connection
Dim z As Integer
Dim Number As Long
Dim produit As String
Dim x As Integer
Dim données As Worksheet
Dim tolerances2 As Worksheet
Set données = Workbooks("Carte de contrôle SQL Server.xlsm").Worksheets("données")
Set cN = New ADODB.Connection 'Instnacier l'objet de connexion
Set rs = New ADODB.Recordset 'Instancier l'objet de connection
dbPath = Path
Application.ScreenUpdating = False 'désactive mise àjour écran pendant execution
Workbooks.Open ("C:\ProgramData\Isl\tolérances.xls")
Set tolerances2 = Workbooks("tolérances.xls").Worksheets("tolérances 2")
Workbooks("Carte de contrôle SQL Server.xlsm").Activate
Worksheets("données").Activate
données.Range(Cells(2, 1), Cells(2, 13).End(xlDown)).ClearContents
produit = Workbooks("Carte de contrôle SQL Server.xlsm").Worksheets("def").Cells(13, 2).Value

'requète pour date,résultat,commentaire et rownum
If produit = "CRM 309-51" Then
    z = 2
    cN.ConnectionString = "Provider=SQLOLEDB;Data Source=VERPACWS016\ENTERPRISE;Initial Catalog=enterprise; User ID=sa;Password=Alpha2000;"
    cN.Open 'Ouvrir la connexion en utilisant l'objet de connexion instancié et la connection string
    
     rs.Open "select T.[Sample Name],T.[Start Time], T.Method, T.[Instrument Serial],RD.xValue,S.x_date,T.rownum " _
      & "from  dbo.tempresultsgrid_fpp as T " _
      & "inner join dbo.ResultData as RD on T.result_id=RD.result_id " _
      & "inner join dbo.Result as R on R.result_id= T.result_id " _
      & "inner join dbo.Sample as S on S.sample_id=R.sample_id " _
      & "inner join dbo.xVariable as V on RD.variable_id=V.variable_id " _
      & "inner join dbo.Instrument as I on R.instrument_id=I.instrument_id " _
      & "where V.identifier in('FPP5Gs_ResultTemp') " _
      & "and I.instrumenttype_id = cast('807c4e1e-34c2-4f97-a9b2-c3e0ef8ede9f'as uniqueidentifier) " _
      & " and T.[Sample Name]='309-51' order by T.[Start Time] ASC", cN, adOpenKeyset, adLockOptimistic

    If Not rs.EOF Then
        While Not rs.EOF
            données.Cells(z, 12).Value = rs.Fields("rownum").Value
            données.Cells(z, 1).Value = rs.Fields("Start Time").Value
            données.Cells(z, 3).Value = rs.Fields("xValue").Value
            données.Cells(z, 2).Value = rs.Fields("Instrument Serial").Value
            rs.MoveNext
            z = z + 1
        Wend
    End If
    
    For x = 2 To 500
        If Cells(x, 12).Value = "" Then
        Else:
            données.Cells(x, 4).Value = tolerances2.Cells(34, 3).Value
            données.Cells(x, 7).Value = tolerances2.Cells(34, 4).Value
            données.Cells(x, 8).Value = tolerances2.Cells(34, 5).Value
            données.Cells(x, 5).Value = tolerances2.Cells(34, 9).Value
            données.Cells(x, 6).Value = tolerances2.Cells(34, 10).Value
            données.Cells(x, 9).Value = tolerances2.Cells(34, 11).Value
            données.Cells(x, 10).Value = tolerances2.Cells(34, 12).Value
        End If
    Next x
ElseIf produit = "CRM 309-52" Then
    z = 2
    Set rs = New ADODB.Recordset
    rs.Open "select T.[Sample Name],T.[Start Time], T.Method, T.[Instrument Serial],RD.xValue,S.x_date,T.rownum " _
      & "from  dbo.tempresultsgrid_fpp as T " _
      & "inner join dbo.ResultData as RD on T.result_id=RD.result_id " _
      & "inner join dbo.Result as R on R.result_id= T.result_id " _
      & "inner join dbo.Sample as S on S.sample_id=R.sample_id " _
      & "inner join dbo.xVariable as V on RD.variable_id=V.variable_id " _
      & "inner join dbo.Instrument as I on R.instrument_id=I.instrument_id " _
      & "where V.identifier in('FPP5Gs_ResultTemp') " _
      & "and I.instrumenttype_id = cast('807c4e1e-34c2-4f97-a9b2-c3e0ef8ede9f'as uniqueidentifier) " _
      & " and T.[Sample Name]='309-52' order by T.[Start Time] ASC", cN, adOpenKeyset, adLockOptimistic
    
    If Not rs.EOF Then
        While Not rs.EOF
            données.Cells(z, 12).Value = rs.Fields("rownum").Value
            données.Cells(z, 1).Value = rs.Fields("Start Time").Value
            données.Cells(z, 3).Value = rs.Fields("xValue").Value
            données.Cells(z, 2).Value = rs.Fields("Instrument Serial").Value
            rs.MoveNext
            z = z + 1
        Wend
    End If
    
    For x = 2 To 500
        If Cells(x, 12).Value = "" Then
        Else:
            données.Cells(x, 4).Value = tolerances2.Cells(35, 3).Value
            données.Cells(x, 7).Value = tolerances2.Cells(35, 4).Value
            données.Cells(x, 8).Value = tolerances2.Cells(35, 5).Value
            données.Cells(x, 5).Value = tolerances2.Cells(35, 9).Value
            données.Cells(x, 6).Value = tolerances2.Cells(35, 10).Value
            données.Cells(x, 9).Value = tolerances2.Cells(35, 11).Value
            données.Cells(x, 10).Value = tolerances2.Cells(35, 12).Value
        End If
    Next x
End If
Workbooks("tolérances.xls").Close

End Sub

En fait qu'on je le compile il y'a un problème avec le deuxième rs.open.... et il y'a un message d'erreur 3709 Impossible d'utiliser cette connexion. Je ne comprends pas pourquoi.Qu'est ce qui cloche?

Merci d'avance pour vos réponses
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 23 mai 2012 à 16:38
3
Merci
Je n'ai pas bien compris la dernière explication.
Y a-t-il trop de données à la fin (et là, c'est qu'un autre programme les rajoute après) ou pas assez de données à la fin (et là, c'est qu'un autre programme les enlève après)?
Dans tous les cas, il faut bien évidemment recenser tous les programmes susceptibles de "toucher" à ta zone de données.


rvblogn
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!

Merci rvblog 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 76 internautes ce mois-ci

Commenter la réponse de rvblog
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 23 mai 2012 à 09:01
0
Merci
Salut Nadeson,

ta connection n'est pas ouverte dans ton elseif.

Ouvre la connection avant d'entrer dans le if.

rvblogn
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!
Commenter la réponse de rvblog
nadeson 11 Messages postés lundi 28 mai 2012Date d'inscription 6 juin 2012 Dernière intervention - 23 mai 2012 à 10:52
0
Merci
Merci pour ta réponse, j'ai essayé modifier mon programme de la facon suivante
Sub fpp()

Dim rs As New ADODB.Recordset
Dim cN As New ADODB.Connection
Dim z As Integer
Dim Number As Long
Dim produit As String
Dim x As Integer
Dim données As Worksheet
Dim tolerances2 As Worksheet
Set données = Workbooks("Carte de contrôle SQL Server.xlsm").Worksheets("données")
Set cN = New ADODB.Connection 'Instnacier l'objet de connexion
Set rs = New ADODB.Recordset 'Instancier l'objet de connection
dbPath = Path
Application.ScreenUpdating = False 'désactive mise àjour écran pendant execution
Workbooks.Open ("C:\ProgramData\Isl\tolérances.xls")
Set tolerances2 = Workbooks("tolérances.xls").Worksheets("tolérances 2")
Workbooks("Carte de contrôle SQL Server.xlsm").Activate
Worksheets("données").Activate
données.Range(Cells(2, 1), Cells(2, 13).End(xlDown)).ClearContents
produit = Workbooks("Carte de contrôle SQL Server.xlsm").Worksheets("def").Cells(13, 2).Value

'requète pour date,résultat,commentaire et rownum
If produit = "CRM 309-51" Then
    z = 2
    cN.ConnectionString = "Provider=SQLOLEDB;Data Source=VERPACWS016\ENTERPRISE;Initial Catalog=enterprise; User ID=sa;Password=Alpha2000;"
    cN.Open 'Ouvrir la connexion en utilisant l'objet de connexion instancié et la connection string
    
     rs.Open "select T.[Sample Name],T.[Start Time],T.[Instrument Serial],T.rownum,RD.xValue " _
      & "from  dbo.tempresultsgrid_fpp as T " _
      & "inner join dbo.ResultData as RD on T.result_id=RD.result_id " _
      & "inner join dbo.Result as R on R.result_id= T.result_id " _
      & "inner join dbo.Sample as S on S.sample_id=R.sample_id " _
      & "inner join dbo.xVariable as V on RD.variable_id=V.variable_id " _
      & "inner join dbo.Instrument as I on R.instrument_id=I.instrument_id " _
      & "where V.identifier in('FPP5Gs_ResultTemp') " _
      & "and I.instrumenttype_id = cast('807c4e1e-34c2-4f97-a9b2-c3e0ef8ede9f'as uniqueidentifier) " _
      & " and T.[Sample Name]='309-51' order by T.[Start Time] ASC", cN, adOpenKeyset, adLockOptimistic

    If Not rs.EOF Then
        While Not rs.EOF
            données.Cells(z, 12).Value = rs.Fields("rownum").Value
            données.Cells(z, 1).Value = rs.Fields("Start Time").Value
            données.Cells(z, 3).Value = rs.Fields("xValue").Value
            données.Cells(z, 2).Value = rs.Fields("Instrument Serial").Value
            rs.MoveNext
            z = z + 1
        Wend
    End If
    rs.Close
    cN.Close
    Set rs = Nothing
    Set cN = Nothing
    
    For x = 2 To 500
        If Cells(x, 12).Value = "" Then
        Else:
            données.Cells(x, 4).Value = tolerances2.Cells(34, 3).Value
            données.Cells(x, 7).Value = tolerances2.Cells(34, 4).Value
            données.Cells(x, 8).Value = tolerances2.Cells(34, 5).Value
            données.Cells(x, 5).Value = tolerances2.Cells(34, 9).Value
            données.Cells(x, 6).Value = tolerances2.Cells(34, 10).Value
            données.Cells(x, 9).Value = tolerances2.Cells(34, 11).Value
            données.Cells(x, 10).Value = tolerances2.Cells(34, 12).Value
        End If
    Next x
ElseIf produit = "CRM 309-52" Then
    z = 2
    cN.ConnectionString = "Provider=SQLOLEDB;Data Source=VERPACWS016\ENTERPRISE;Initial Catalog=enterprise; User ID=sa;Password=Alpha2000;"
    cN.Open 'Ouvrir
    rs.Open "select T.[Sample Name],T.[Start Time],T.[Instrument Serial],T.rownum,RD.xValue " _
      & "from  dbo.tempresultsgrid_fpp as T " _
      & "inner join dbo.ResultData as RD on T.result_id=RD.result_id " _
      & "inner join dbo.Result as R on R.result_id= T.result_id " _
      & "inner join dbo.Sample as S on S.sample_id=R.sample_id " _
      & "inner join dbo.xVariable as V on RD.variable_id=V.variable_id " _
      & "inner join dbo.Instrument as I on R.instrument_id=I.instrument_id " _
      & "where V.identifier in('FPP5Gs_ResultTemp') " _
      & "and I.instrumenttype_id = cast('807c4e1e-34c2-4f97-a9b2-c3e0ef8ede9f'as uniqueidentifier) " _
      & " and T.[Sample Name]='309-52' order by T.[Start Time] ASC", cN, adOpenKeyset, adLockOptimistic
    
    If Not rs.EOF Then
        While Not rs.EOF
            données.Cells(z, 12).Value = rs.Fields("rownum").Value
            données.Cells(z, 1).Value = rs.Fields("Start Time").Value
            données.Cells(z, 3).Value = rs.Fields("xValue").Value
            données.Cells(z, 2).Value = rs.Fields("Instrument Serial").Value
            rs.MoveNext
            z = z + 1
        Wend
    End If
    rs.Close
    cN.Close
    Set rs = Nothing
    Set cN = Nothing
    
    For x = 2 To 500
        If Cells(x, 12).Value = "" Then
        Else:
            données.Cells(x, 4).Value = tolerances2.Cells(35, 3).Value
            données.Cells(x, 7).Value = tolerances2.Cells(35, 4).Value
            données.Cells(x, 8).Value = tolerances2.Cells(35, 5).Value
            données.Cells(x, 5).Value = tolerances2.Cells(35, 9).Value
            données.Cells(x, 6).Value = tolerances2.Cells(35, 10).Value
            données.Cells(x, 9).Value = tolerances2.Cells(35, 11).Value
            données.Cells(x, 10).Value = tolerances2.Cells(35, 12).Value
        End If
    Next x
End If
Workbooks("tolérances.xls").Close

End Sub

il y'a plus d'erreur 3709 mais une erreur 3001 comme quoi les arguments sont de types incorrects, en dehors des limites autoriséées ou en conflits les uns avec les autres.Pourtant j'ai vérifié c'est bien les bons arguments, bonne variable, etc...Je ne vois pas ou est le pb?
Commenter la réponse de nadeson
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 23 mai 2012 à 13:52
0
Merci
Je viens de lire ton code en entier, et le copier/coller n'est pas ton ami!
Essaies de limiter la taille du code en le factorisant comme ceci :

Dim strSampleName as string

select case produit 
case "CRM 309-51"
    strSampleName ="309-51"
case "CRM 309-52"
    strSampleName ="309-52"
end select

     rs.Open "select T.[Sample Name],T.[Start Time],T.[Instrument Serial],T.rownum,RD.xValue " _
      & "from  dbo.tempresultsgrid_fpp as T " _
      & "inner join dbo.ResultData as RD on T.result_id=RD.result_id " _
      & "inner join dbo.Result as R on R.result_id= T.result_id " _
      & "inner join dbo.Sample as S on S.sample_id=R.sample_id " _
      & "inner join dbo.xVariable as V on RD.variable_id=V.variable_id " _
      & "inner join dbo.Instrument as I on R.instrument_id=I.instrument_id " _
      & "where V.identifier in('FPP5Gs_ResultTemp') " _
      & "and I.instrumenttype_id = cast('807c4e1e-34c2-4f97-a9b2-c3e0ef8ede9f'as uniqueidentifier) " _
      & " and T.[Sample Name]='" & strSampleName  & "' order by T.[Start Time] ASC", cN, adOpenKeyset, adLockOptimistic


Ca t'évitera d'avoir un grand code, et d'éliminer la possibilité qu'il soit mal dupliqué.
Si ça ne marche toujours pas, essaies de nous dire où à lieu l'erreur, stp.

rvblogn
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!
Commenter la réponse de rvblog
nadeson 11 Messages postés lundi 28 mai 2012Date d'inscription 6 juin 2012 Dernière intervention - 23 mai 2012 à 14:52
0
Merci
Merci beaucoup sa marche nickel, sauf que quand le résultat s'affiche, cela ne prends pas à compte les conditions qui sont après where
Commenter la réponse de nadeson
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 23 mai 2012 à 15:12
0
Merci
Je ne sais pas si un espace avant le as du cast ne l'aiderait pas?
Désactive toutes tes clauses Where pour n'en laisser qu'une, vérifie si elle est prise en compte, puis active la suivante, vérifie...Ainsi de suite, pour vérifier qu'elle marche toutes (je ne connais pas tes données, il est possible qu'elles s'annulent entre elles).

rvblogn
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!
Commenter la réponse de rvblog
nadeson 11 Messages postés lundi 28 mai 2012Date d'inscription 6 juin 2012 Dernière intervention - 23 mai 2012 à 15:23
0
Merci
Disons quand j'execute la requete SQL sur SQL Server sa marche sans problème.Mais je ne sais pas pourquoi au niveau de vba excel, lorsque j'affiche les résultats, les conditions ne sont plus prises en compte
Commenter la réponse de nadeson
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 23 mai 2012 à 15:57
0
Merci
Il y a peut-être autre chose qui s'exécute dans le classeur et qui modifie le jeu de réponses. Si la requête exécutée dans SQL server ramène moins de données, il est difficile de croire qu'une fois exécutée dans VBA, elle en ramène plus! ADODB l'exécute d'un seul coup, je ne vois pas pourquoi il ne prendrait pas le where.

N'y aurait-il pas une Query qui remplirait les données sans que tu t'en rendes compte?


rvblogn
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!
Commenter la réponse de rvblog
nadeson 11 Messages postés lundi 28 mai 2012Date d'inscription 6 juin 2012 Dernière intervention - 23 mai 2012 à 16:14
0
Merci
Effectivement il y'a 2 autres programmes qui s'executent en parallèle:
Il ya celui là
Sub définitionCarte()

Worksheets("def").Range("B10:B13").ClearContents

Application.DisplayAlerts = False 'supprime le message d'alerte d'Excel
If Charts.Count = 0 Then
Else: Charts.Delete 'efface le graph
End If
Application.DisplayAlerts = True 'active les messages d'alertes d'Excel

If Worksheets("données").Cells(2, 1).Value = "" Then
Else: Worksheets("données").Range("A2:M500").ClearContents
End If
'affiche la boite de dialogue pour le choix de la période et du type d'analyseur
UserForm1.Show
Worksheets("def").Range("B10:B11").NumberFormat = "dd/mm/yyyy"
'selon le type d'analyseur affiche boite de dialogue pour choix du produit

If Cells(12, 2).Value = "CPP 5Gs" Then
    UserForm3.Show
ElseIf Cells(12, 2).Value = "FP92 5G2" Then
    UserForm4.Show
ElseIf Cells(12, 2).Value = "FP93 5G2" Then
    UserForm5.Show
ElseIf Cells(12, 2).Value = "FPP 5G(s)" Then
    UserForm6.Show
ElseIf Cells(12, 2).Value = "FZP 5G2s" Then
    UserForm7.Show
ElseIf Cells(12, 2).Value = "MPP 5Gs" Then
    UserForm8.Show
ElseIf Cells(12, 2).Value = "NCK2 5G" Then
    UserForm9.Show
ElseIf Cells(12, 2).Value = "PMD 100/110" Then
    UserForm10.Show
ElseIf Cells(12, 2).Value = "FP56 5G2" Then
    Cells(13, 2).Value = "CRM 256-51"
ElseIf Cells(12, 2).Value = "FP170 5G2" Then
    Cells(13, 2).Value = "CRM 170-51"
End If

'requète en fonction du type d'analyseur et du produit pour affichage dans données

If Cells(12, 2).Value = "CPP 5Gs" Then
    cpp
ElseIf Cells(12, 2).Value = "FP56 5G2" Then
    fp56
ElseIf Cells(12, 2).Value = "FP92 5G2" Then
    fp92
ElseIf Cells(12, 2).Value = "FP93 5G2" Then
    fp93
ElseIf Cells(12, 2).Value = "FP170 5G2" Then
    fp170
ElseIf Cells(12, 2).Value = "FPP 5G(s)" Then
    fpp
ElseIf Cells(12, 2).Value = "FZP 5G2s" Then
    fzp
ElseIf Cells(12, 2).Value = "MPP 5Gs" Then
    mpp
ElseIf Cells(12, 2).Value = "NCK2 5G" Then
    nck

End If

'filtre selon la période
Dim datedeb As Date
Dim datefin As Date
Dim myrange As Range
Dim z As Integer
datedeb = Worksheets("def").Cells(10, 2).Value
datefin = Worksheets("def").Cells(11, 2).Value

Worksheets("données").Activate
For z = 2 To 500
    If Cells(z, 1).Value < datedeb Or Cells(z, 1).Value > datefin Then
        Rows(z).ClearContents
    End If
Next z

If Cells(2, 1).Value = "" Then
    Cells(2, 1).End(xlDown).Select
    Selection.Offset(-1, 0).Select
    Set myrange = Range(Cells(2, 1), Selection)
    myrange.EntireRow.Delete
End If

Worksheets("données").Range(Cells(2, 1), Cells(2, 13).End(xlDown)).Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Key2:=Range("A2"), Order2:=xlAscending, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal

'graphique
carte



End Sub

et
Sub définitionCarte()

Worksheets("def").Range("B10:B13").ClearContents

Application.DisplayAlerts = False 'supprime le message d'alerte d'Excel
If Charts.Count = 0 Then
Else: Charts.Delete 'efface le graph
End If
Application.DisplayAlerts = True 'active les messages d'alertes d'Excel

If Worksheets("données").Cells(2, 1).Value = "" Then
Else: Worksheets("données").Range("A2:M500").ClearContents
End If
'affiche la boite de dialogue pour le choix de la période et du type d'analyseur
UserForm1.Show
Worksheets("def").Range("B10:B11").NumberFormat = "dd/mm/yyyy"
'selon le type d'analyseur affiche boite de dialogue pour choix du produit

If Cells(12, 2).Value = "CPP 5Gs" Then
    UserForm3.Show
ElseIf Cells(12, 2).Value = "FP92 5G2" Then
    UserForm4.Show
ElseIf Cells(12, 2).Value = "FP93 5G2" Then
    UserForm5.Show
ElseIf Cells(12, 2).Value = "FPP 5G(s)" Then
    UserForm6.Show
ElseIf Cells(12, 2).Value = "FZP 5G2s" Then
    UserForm7.Show
ElseIf Cells(12, 2).Value = "MPP 5Gs" Then
    UserForm8.Show
ElseIf Cells(12, 2).Value = "NCK2 5G" Then
    UserForm9.Show
ElseIf Cells(12, 2).Value = "PMD 100/110" Then
    UserForm10.Show
ElseIf Cells(12, 2).Value = "FP56 5G2" Then
    Cells(13, 2).Value = "CRM 256-51"
ElseIf Cells(12, 2).Value = "FP170 5G2" Then
    Cells(13, 2).Value = "CRM 170-51"
End If

'requète en fonction du type d'analyseur et du produit pour affichage dans données

If Cells(12, 2).Value = "CPP 5Gs" Then
    cpp
ElseIf Cells(12, 2).Value = "FP56 5G2" Then
    fp56
ElseIf Cells(12, 2).Value = "FP92 5G2" Then
    fp92
ElseIf Cells(12, 2).Value = "FP93 5G2" Then
    fp93
ElseIf Cells(12, 2).Value = "FP170 5G2" Then
    fp170
ElseIf Cells(12, 2).Value = "FPP 5G(s)" Then
    fpp
ElseIf Cells(12, 2).Value = "FZP 5G2s" Then
    fzp
ElseIf Cells(12, 2).Value = "MPP 5Gs" Then
    mpp
ElseIf Cells(12, 2).Value = "NCK2 5G" Then
    nck

End If

'filtre selon la période
Dim datedeb As Date
Dim datefin As Date
Dim myrange As Range
Dim z As Integer
datedeb = Worksheets("def").Cells(10, 2).Value
datefin = Worksheets("def").Cells(11, 2).Value

Worksheets("données").Activate
For z = 2 To 500
    If Cells(z, 1).Value < datedeb Or Cells(z, 1).Value > datefin Then
        Rows(z).ClearContents
    End If
Next z

If Cells(2, 1).Value = "" Then
    Cells(2, 1).End(xlDown).Select
    Selection.Offset(-1, 0).Select
    Set myrange = Range(Cells(2, 1), Selection)
    myrange.EntireRow.Delete
End If

Worksheets("données").Range(Cells(2, 1), Cells(2, 13).End(xlDown)).Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Key2:=Range("A2"), Order2:=xlAscending, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal

'graphique
carte



End Sub

En fait en affectant à une image le programme definitioncarte asscocié à une Userform, j'entre des paramètres dont dans ce cas ci fpp et l'échantillon, puis un graph est censé etre créé grace aux résultats qui s'affichent dans la feuille données.Seulement s'il y'a trop de résultats il y'aura une erreur avec le LegendEntries.
Donc je me suis rendu compte que la condition était bien pris en compte mais qu'il y'avait plus de résultats qui ne devait pas etre la.Je l'ai essayé avec d'autre critère er sa marche, mias pas là et je ne comprends pas
Commenter la réponse de nadeson
nadeson 11 Messages postés lundi 28 mai 2012Date d'inscription 6 juin 2012 Dernière intervention - 23 mai 2012 à 16:50
0
Merci
Franchement je te remercie infiniment pour tes conseils.J'ai fait comme tu m'as dit et j'ai trouvé la solution. Effectivement le programme defintionCarte touchaient au programme et là sa marche nickel.
Commenter la réponse de nadeson
rvblog 794 Messages postés vendredi 4 mars 2005Date d'inscription 12 juin 2012 Dernière intervention - 24 mai 2012 à 09:29
0
Merci
Ben, je suis ravi pour toi, à un de ces jours


rvblogn
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!
Commenter la réponse de rvblog

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.