|
| jemiyo | Posté le 04/04/2007 @ 10:35 |
Petit astucien
300 Messages
| Bonjour, Je cherche à comprendre EN BON VIEUX FRANCAIS le langage de ce code VBA. Option Explicit Function rechercheprix(qualite As String, depot As String, fournisseur As String, decalage As Integer)Dim i As IntegerDim j As LongApplication.Volatile With Sheets("Réceptions") « Là il va sur ma feuille réception »' recherche de la colonne qui contient les prixFor i = 1 To 27 If .Cells(3, i) = qualite Then i = i + decalage ' decalage entre le nom de la zone et la colonne prix Exit For End IfNext i' recherche de la ligne avec les deux conditionsFor j = 5 To .Range("C65536").End(xlUp).RowIf .Range("C" & j) = fournisseur And .Range("E" & j) = depot Then « Là il cherche le rang C et J dans Fournisseur » rechercheprix = .Cells(j, i) Exit Function End IfNext jEnd WithRechercheprix = False ' pour indiquer que le prix n'a pas été trouvéEnd FunctionEnd Function Merci.
|
| |
| |
| Publicité |
|
|
| breizhbugs | Posté le 04/04/2007 à 11:15 |
Astucien
3001 Messages
| Avec des retour a la ligne, il ressemble a quoi ton code? |
| |
|
| jemiyo | Posté le 05/04/2007 à 16:43 |
Petit astucien
300 Messages
| Bonjour, Avec toutes mes excuses: Option Explicit Function rechercheprix(qualite As String, depot As String, fournisseur As String, decalage As Integer)Dim i As IntegerDim j As LongApplication.Volatile With Sheets("Réceptions") « Là il va sur ma feuille réception »' recherche de la colonne qui contient les prixFor i = 1 To 27 If .Cells(3, i) = qualite Then i = i + decalage ' decalage entre le nom de la zone et la colonne prix Exit For End IfNext i' recherche de la ligne avec les deux conditionsFor j = 5 To .Range("C65536").End(xlUp).RowIf .Range("C" & j) = fournisseur And .Range("E" & j) = depot Then « Là il cherche le rang C et J dans Fournisseur » rechercheprix = .Cells(j, i) Exit Function End IfNext jEnd WithRechercheprix = False ' pour indiquer que le prix n'a pas été trouvéEnd Function A + |
| |
|
| jemiyo | Posté le 05/04/2007 à 16:45 |
Petit astucien
300 Messages
| Option Explicit Function rechercheprix(qualite As String, depot As String, fournisseur As String, decalage As Integer) Dim i As IntegerDim j As LongApplication.Volatile With Sheets("Réceptions") « Là il va sur ma feuille réception »' recherche de la colonne qui contient les prixFor i = 1 To 27 If .Cells(3, i) = qualite Then i = i + decalage ' decalage entre le nom de la zone et la colonne prix Exit For End IfNext i' recherche de la ligne avec les deux conditionsFor j = 5 To .Range("C65536").End(xlUp).RowIf .Range("C" & j) = fournisseur And .Range("E" & j) = depot Then « Là il cherche le rang C et J dans Fournisseur » rechercheprix = .Cells(j, i) Exit Function End IfNext jEnd WithRechercheprix = False ' pour indiquer que le prix n'a pas été trouvéEnd Function |
| |
|
| jemiyo | Posté le 05/04/2007 à 16:51 |
Petit astucien
300 Messages
| Option Explicit
Function rechercheprix(qualite As String, depot As String, fournisseur As String, decalage As Integer) Dim i As Integer
Dim j As Long Application.Volatile With Sheets("Réceptions") « Là il va sur ma feuille réception » ' recherche de la colonne qui contient les prix For i = 1 To 27 If .Cells(3, i) = qualite Then i = i + decalage ' decalage entre le nom de la zone et la colonne prix Exit For End If Next i ' recherche de la ligne avec les deux conditions For j = 5 To .Range("C65536").End(xlUp).Row If .Range("C" & j) = fournisseur And .Range("E" & j) = depot Then « Là il cherche le rang C et J dans Fournisseur » rechercheprix = .Cells(j, i) Exit Function End If Next j End With Rechercheprix = False ' pour indiquer que le prix n'a pas été trouvé End Function |
| |
|
| breizhbugs | Posté le 05/04/2007 à 18:34 |
Astucien
3001 Messages
| Merci pour la mise en page . Tu aurais pu utiliser la fonction éditer ( ) au lieu de poster plusieurs fois. Bon j'utilise pas excell et je ne connait pas non plus le tableau dans lequel tu fais l'analyse mais en gros tu donnes 4 renseignements a la fonction (la qualité, le depot, le fournisseur et le decalage - comprends pas trop ce dernier) et avec ces renseignement elle va essayer de trouver un prix dans la feuille excell "receptions". Je suppose que la feuille compte 27 colonnes que l'on va parcourir pour cherche le parametre qualité. si l'on trouve la colonne, on sort de la boucle for i... en conservant la valeur de i. Le j va nous servir a parcourir les lignes de la feuille. on va rechercher la ligne ou se trouve les valeurs "fournisseur" et "depot" passé en parametre. Si l'on trouve la ligne, on renvoie la valeur de la colonne (j,i) qui correspond au prix recherché. Si l'on sort de cette boucle normalement, c'est que la recherche a echoué et donc rechercheprix renvoi "faux" Modifié par breizhbugs le 05/04/2007 18:34 |
| |
|
|
| Haut de la page |