Tableau récapitulatif d'offres

Max29 -  
bouket Messages postés 147 Statut Membre -
Bonjour,

Je suis actuellement en stage et développe un outil sur excel pour permettre de réaliser plus rapidement des devis. Mais voilà, alors que mon fichier est presque terminé, je bloque sur un gros problème. En effet, afin que mon devis se remplisse automatiquement, il faut préalablement remplir une fiche de renseignements à la fin de laquelle se trouve un tableau dont le but est de récapituler les offres possibles en fonction des critères renseignés.

J'ai utilisé des fonctions SI imbriquées et des fonctions recherchev. Pourtant à chaque fois le résultat correspond systématiquement au dernier produit de ma liste alors qu'il y a des produits précédents qui répondent aux mêmes critères.

Y aurait-il quelqu'un qui pourrait m'aider ? Je pensais éventuellement construire une macro mais je suis novice dans ce domaine-ci...
Configuration: Windows Vista
Firefox 3.0.13

30 réponses

  • 1
  • 2
Résumé de la discussion

Le problème porte sur un fichier Excel destiné à générer des devis, où le tableau récapitulatif des offres répondant à des critères (marque, puissance, prix) ne retient que le dernier produit. Des solutions évoquées incluent l'utilisation de SI imbriqués et de RECHERCHEV, mais la recherche vise à afficher plusieurs offres correspondant aux critères plutôt que d'en afficher une seule. Plusieurs intervenants proposent une macro de recherche capable d afficher plusieurs résultats en fonction des critères, au lieu d'un seul, avec un exemple de code illustrant la récupération des offres correspondantes. D'autres échanges abordent l'ajustement des méthodes (ordre des critères, tolérances) et soulignent la nécessité de partager un exemple concret pour affiner les solutions sans conclure à une résolution finale.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. bouket Messages postés 147 Statut Membre 22
     
    Bonjour,

    Je pense que les If imbriquées se comportent de la façon suivante : Si ils rencontrent plusieurs possibilités, ils ne gardent que la dernière ...

    Pour que cela marche, il faut effectivement, je pense (mais peut-être que quelqu'un à une solution plus simple ^^), faire une macro, pour enregistrer les choix valables au fur et à mesure.

    Pour se faire, je vous conseille de nous expliquer plus en détails votre fichier, ou, pourquoi pas, poster votre document Excel (élaguée si confus)...

    Bon après-midi !
    0
  2. Max29
     
    Il y a 3 critères importants que la formule doit prendre en compte : la marque, la puissance et le prix.

    Les fonctions recherche ont pour matrice une autre feuille du fichier qui correspond à une base produit et qui contient également ces 3 critères.

    Voici la formule telle quelle est pour le moment : =SI(ET(C48="aleo";RECHERCHEV(C48;'BASE PRODUIT'!$B$5:$Z$19;24)=$D$15;RECHERCHEV(C48;'BASE PRODUIT'!$B$5:$Z$19;25)=$D$16);RECHERCHEV(C48;'BASE PRODUIT'!$B$5:$Z$19;3))

    J'ai tenté de construire une macro recherche mais je bloque également ! Est-il possible d'imbriquer des fonctions SI dans une macro ?
    0
  3. bouket Messages postés 147 Statut Membre 22
     
    oui, on peut tout faire avec une macro, dîtes moi ce que vous n'arrivez pas à faire faire à votre fichier ^^!
    0
    1. Max29
       
      Ce que je cherche donc à faire c'est une macro recherche qui permettrait d'afficher les offres de produit possibles en fonction des critères émis. En gros, le but de la macro est d'afficher plusieurs résultats comme pourrait le faire un logiciel professionnel.

      Voici le code macro que j'avais entré (après plusieurs recherches sur internet) :

      Sub Test()
      Dim Formule As String
      Dim Module As Integer
      Formule = "=VLOOKUP(C48,'BASE PRODUIT'!B5:Z19,3,FALSE)"
      ActiveCell.Offset(0, 0).Value = Formule
      ActiveCell.Offset(1, 0).Select
      End Sub
      0
  4. bouket Messages postés 147 Statut Membre 22
     
    Désolé, j'ai l'impression d'être simplet ! Mais, pouvez vous donner un exemple concret de où et quoi doit aller chercher la macro ?

    Je pense que la macro devrait plutôt s'apparenter à quelque chose du goût :

    Je vais chercher quelque chose qui correspond, je l'enregistre et je le met dans la première case vide de mon tableau, puis suite de la recherche, si nouvelle chose qui correspond, je l'enre... et ainsi de suite !

    Est-ce proche de ce que vous souhaitez faire ?

    +
    0
    1. Max29
       
      Le principe de fonctionnement du tableau est le suivant :

      il faut remplir préalablement plusieurs préférences dont la marque, la puissance et le prix. Il faut en outre renseigner les dimensions de l'installation.

      Après tout cela, ce que j'aimerais c'est que mon tableau indique toutes les offres possibles qui répondent aux critères rentrés.

      Par exemple, pour une marque X, une puissance Y et un prix W, dans ma base produit je vois qu'il y a 3 offres correspondantes et je voudrais donc que ces 3 offres apparaissent dans le tableau (puisque vous l'aurez compris la base produit ne sera pas visible)

      L'intérêt de ce tableau est de permettre à l'utilisateur de choisir le produit sur lequel faire le devis.

      En espérant que ces indications te permettent de mieux comprendre mon problème ^^.

      ++
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    dépose donc un fichier exemple sur cijoint.fr et colle ici le lien fourni
    eric
    0
  7. bouket Messages postés 147 Statut Membre 22
     
    Je travaille sur le code, j'ai plusieurs questions concernant la qualité des recherches que la macro doit effectuer...

    Le prix, la marque et la puissance doivent être recherché dans quel ordre, avec quel rigueur, je veux dire:

    si je trouve la bonne marque, le bon prix mais que la puissance est légèrement inférieur, dois-je quand même le faire figurer dans la recherche... ?

    Plus vous serez précis sur la qualité de la recherche qui doit être effectuer, mieux cela sera :) !
    0
    1. Max29
       
      Globalement, si on choisit une marque X la macro doit uniquement chercher les références de cette marque X (de même pour les autres marques - 3 au total). Ensuite, si le prix reste un critère important, la puissance peut varier. Je m'explique :

      L'utilisateur définit une puissance souhaitée (par exemple 2500<>3000). Ensuite il rentre les dimensions de l'installation ce qui lui permet d'avoir le nombre théorique de produit à installer. Simultanément, dans la base prix, le nombre effectif de produit par référence est calculé. Finalement, le résultat final peut légèrement différé des préférences de départ.

      Pour revenir à nos moutons, il faudrait donc (dans la mesure du possible) que la macro aille chercher les produits en fonction de la marque désirée, du prix souhaitée et de la puissance avec une marge de + ou - 10%.

      NB : je m'excuse mais je ne pourrai vous communiquer le fichier (celui-ci doit rester confidentiel).
      0
  8. bouket Messages postés 147 Statut Membre 22
     
    je comprend, je vais donc tenir compte de la marge de 10 % autour de la valeur rentrée par l'utilisateur ;)

    à demain !
    0
  9. bouket Messages postés 147 Statut Membre 22
     
    Bonjour,

    Voici le lien vers le fichier que j'ai préparé : https://www.cjoint.com/?iqpoAhqMTU
    Je vous laisse découvrir et poser vos questions sur le code ;) (je n'ai pas mis de commentaire pour que vous essayer de comprendre la logique par vous même, et placiez vos propre commentaire)

    ++
    0
    1. Max29
       
      Merci beaucoup pour ce travail énorme !!! Je vais essayer de l'adapter à mon fichier (je n'hésiterai pas à vous recontacter en cas de problème).

      De nouveau, un grand merci !!!
      0
      1. Max29 > Max29
         
        Salut,

        De nouveau merci pour cette macro. J'ai essayé aujourd'hui de la transposer pour mon fichier. Pour mieux la comprendre je l'ai recopiée petit à petit (et pas de copier/coller). Par contre, j'ai un problème. Après avoir rentré le code cells.find(...).Activate vba me demande de rajouter with. Du coup je le fais mais après il me réclame de définir la colonne marque comme objet ou variable.

        Je vais continuer à plancher dessus mais si vous pouvez me donner un p'tit coup de main ce ne serait pas de refus !

        Par ailleurs, j'ai deux précisions à rajouter :

        - il me semble que dans votre macro vous n'ayez pas pris en compte le modèle de la marque (exemple : dans votre fichier, en plus de vos marques il faudrait des modèles comme la clio, la mégane pour renault).

        - quand il y a plusieurs offres possibles comment la macro réagit-elle ?
        0
  10. bouket Messages postés 147 Statut Membre 22
     
    non en effet, je n'ai pas tenu compte du modèle d'une marque, on peut remédié à cela en liant la recherche de la marque au modèle...

    Dans la partie recherche de la marque, il suffit de rajouter une condition supplémentaire sur le modèle !
    Comme je ne savais pas comment rendre la recherche, j'ai simplement fait en sorte que les différentes offres possibles se mettent les unes en dessous des autres (cela correspond à la variable m qui commence à la ligne 6 et qui n'incrémente à chaque fois que l'on ajoute une offre)

    sinon, je vous propose de me passer le code que vous avez modifiez, pour voir comment remédier au problème du with et de la recherche de la colonne ;) !

    à plus tard!

    
    modele_rech = Cells(4, 2).Value
    
    Sheets("produit").Activate
    
    If (marque_rech <> "") Then
    
        Cells.Find(What:="marque", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
            :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
    
        colonne_marque = ActiveCell.Column
        
        Cells.Find(What:="modèle", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
            :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
    
        colonne_modele = ActiveCell.Column
        
        While (Cells(i, colonne_marque).Value <> "")
            
            If (marque_rech = Cells(i, colonne_marque).Value And modele_rech = Cells(i, colonne_modele).Value) Then
                table_resultat(n) = Cells(i, colonne_marque).Row
                n = n + 1
            End If
        i = i + 1
        Wend
    
    Else
    MsgBox "Entrer une marque pour effectuer la recherche"
    End If
    
    0
    1. Max29
       
      Voici le code sur lequel ma macro bloque :

      Sub Recherche()
      Dim marque_rech As String
      Dim puissance_rech As Variant
      Dim prix_rech As Variant
      Dim colonne_marque As Integer
      Dim colonne_puissance_totale As Integer
      Dim colonne_tranche As Integer
      Dim table_resultat(150) As Integer
      Dim puissance As Variant
      Dim prix As Variant
      Dim i As Integer
      Dim j As Integer
      Dim k As Integer
      Dim l As Integer
      Dim m As Integer
      Dim n As Integer
      i = 1
      j = 1
      k = 1
      l = 1
      m = 46
      n = 1

      Sheets("dimensionnement").Activate
      marque_rech = Cells(10, 4).Value
      puissance_rech = Cells(13, 4).Value
      prix_rech = Cells(14, 4).Value


      Sheets("base produit").Activate

      colonne_marque = ActiveCell.Column

      If (marque_rech <> "") Then

      Cells.Find(what:=(marque_rech), after:=ActiveCell, LookIn:=xlFormulas, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False).Activate

      While (Cells(i, colonne_marque).Value <> "")

      If (marque_rech = Cells(i, colonne_marque).Value) Then
      table_resultat(n) = Cells(i, colonne_marque).Row
      n = n + 1
      End If
      i = i + 1
      Wend
      End If
      End Sub

      Plus précisément, c'est au niveau du code commençant par "Cells.Find(...).Activate". Vba m'annonce "Erreur d'exécution '91' : variable objet ou variable de bloc With non définie".

      Je tiens à préciser que sur votre fichier, la macro fonctionne très bien.
      0
  11. bouket Messages postés 147 Statut Membre 22
     
    Enfait, il s'agit d'une erreur assez simple à résoudre, vous avez placé la recherche de l'entête de colonne après avoir attribué le numéro de la colonne

    
    colonne_marque = ActiveCell.Column 
    
    


    doit se situer juste après la recherche. En effet, celle ci à pour seul but d'activer la cellule d'entête de la colonne qu'on cherche, et après on note la colonne de la cellule qu'on a activé ...

    
    Cells.Find(what:=(marque_rech), after:=ActiveCell, LookIn:=xlFormulas, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False).Activate 
    
    colonne_marque = ActiveCell.Column 
    
    


    Peut surement se simplifier d'ailleurs en (mais que je trouve moins clair) :

    
    colonne_marque = Cells.Find(what:=(marque_rech), after:=ActiveCell, LookIn:=xlFormulas, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False).Column
    
    
    0
    1. Max29
       
      Je suis désolé d'insister, mais même en corrigeant cette erreur, vba m'indique le même message d'erreur au même niveau (en gras)

      Sheets("base produit").Activate

      If (marque_rech <> "") Then

      Cells.Find(What:=(marque_rech), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
      :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase _
      :=False, SearchFormat:=False).Activate


      colonne_marque = ActiveCell.Column

      While (Cells(i, colonne_marque).Value <> "")

      If (marque_rech = Cells(i, colonne_marque).Value) Then
      table_resultat(n) = Cells(i, colonne_marque).Row
      n = n + 1
      End If
      i = i + 1
      Wend

      Else
      MsgBox "Entrer une marque pour effectuer la recherche"
      End If

      J'ai simplement modifié le nom des feuilles par rapport à votre modèle. Peut-être faut-il modifier d'autres paramètres au début de la macro comme "i", "j", "k"... ou alors changer "integer" par "object" ou "variante".

      Pour info, je travaille sur excel 2007.
      0
      1. Max29 > Max29
         
        J'ai réussi (après d'immenses efforts) à trouver la solution de mon problème. Par contre, maintenant que la macro semble fonctionner (en tout cas elle n'affiche plus de message d'erreur), il ne se passe rien.
        Je pense savoir d'où vient le problème c'est pourquoi j'aimerais bien que vous me précisiez un peu plus ce que représentent les lettres "i, j, k, l, m, n".

        Sont-elles le résultat d'un choix arbitraire ? Sont-elles des variables inhérentes aux macros ?

        Je tiens d'ailleurs à préciser que mes critères de choix n'apparaissent pas sous forme numérique mais de la manière suivante (exemple) :

        - puissance : 2000<>3000
        - prix : 2.50<>3.00

        Une telle présentation peut-elle avoir une incidence sur le bon fonctionnement de la macro ?

        ++
        0
  12. bouket Messages postés 147 Statut Membre 22
     
    Les lettres i, j, k ect sont arbitraires et pris comme "compteur de boucle" dans plusieurs cas.

    Par ailleurs, aucun résultat ne s'affichent s'y les prix/puissances dans la table où la recherche s'effectue sont d'une forme autre que nombre, en effet on compare dans le code des valeurs numériques...

    Je m'explique, dans la première recherche (premier grand if), on met dans un tableau toutes les lignes qui correspondent à la marque souhaitez, éliminant ainsi une bonne partie des références. Ensuite, lors de la recherche du prix, on compare celui ci à la valeur souhaitez pour chacun des lignes préalablement définies par la marque. Ainsi, si la comparaison du prix n'est pas satisfaisante, alors on met la valeur de la référence à 0 pour l'éliminer et on regarde la suivante. Ici, aucun résultat ne peut sortir, car à chaque fois la comparaison échoue.
    Du coup, la macro ne rend rien...

    Bien sûr, il y a des solutions de rechanges...

    Je peux peut-être améliorer la macro si vous souhaitez m'envoyer votre fichier (seule la structure du fichier, vous pouvez le dépouillez de toutes informations sensibles ;), je pourrais faire quelque chose de beaucoup plus intéressant, avec une recherche plus ciblée et des options plus intéressantes!
    (vous pouvez transmettre le lien cjoint en mp...)

    En espérant avoir répondu aux questions ...
    0
    1. Max29
       
      Je suis désolé mais je ne pourrai vous communiquer le fichier ! Même en le simplifiant je dois conserver des données internes...

      En revanche, est-il possible que vous m'indiquiez des codes possibles pour améliorer la macro ?

      En reprenant votre fichier, il faudrait par exemple rajouter à la feuille "produit" une colonne modèle. C'est ensuite ce modèle et la marque qui doivent apparaître en premier dans la table de résultat.

      Pour les critères, je vais modifier ma logique de sorte que ce ne soit plus que des valeurs numériques...
      0
  13. bouket Messages postés 147 Statut Membre 22
     
    Bonjour,

    Le code de la fin du message 14 prenait en compte la demande sur le modèle ;), le code en gras correspond aux modifications à apporter...

    bonne journée
    0
    1. Max29
       
      Navré de vous importuner une xième fois (à force ma nullité peut agasser), mais avant de compléter ma macro, je dois résoudre un problème d'envergure.

      Ma macro fonctionne correctement. Elle prend bien en compte les deux critères entrés pour l'instant (marque et prix) dans la feuille "dimensionnement" et sélectionne parfaitement les références qui y répondent dans la feuille "base". Pour autant, elle ne parvient pas à les copier.

      Je pense que le problème peut venir du fait qu'elle ne prenne pas en compte la fin de la macro cad le code "for".

      Si vous pouviez m'aider à résoudre ce problème, ce serait je pense mon ultime recours à votre précieuse aide !!!
      0
  14. bouket Messages postés 147 Statut Membre 22
     
    Pas de problème, par contre sans le code, je ne vois pas du tout :s
    copier coller ?
    0
    1. Max29
       
      Voici le code entier de la macro :

      Sub Recherche()

      Dim marque_rech As String
      Dim prix_rech As Variant
      Dim colonne_marque As Integer
      Dim colonne_prix_unitaire As Integer
      Dim table_resultat(150) As Integer
      Dim prix As Variant
      Dim i As Integer
      Dim j As Integer
      Dim k As Integer
      Dim l As Integer
      Dim m As Integer
      Dim n As Integer
      i = 1
      j = 1
      k = 1
      l = 1
      m = 46
      n = 1

      Sheets("dimensionnement").Activate
      marque_rech = Cells(10, 4).Value
      prix_rech = Cells(14, 4).Value


      Sheets("base").Select

      If (marque_rech <> "") Then

      Cells.Find(what:=(marque_rech), after:=ActiveCell, LookIn:=xlFormulas, lookat _
      :=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase _
      :=False, searchformat:=False).Activate

      colonne_marque = ActiveCell.Column

      While (Cells(i, colonne_marque).Value <> "")

      If (marque_rech = Cells(i, colonne_marque).Value) Then
      table_resultat(n) = Cells(i, colonne_marque).Row
      n = n + 1
      End If
      i = i + 1
      Wend

      Else
      MsgBox "Entrer une marque pour effectuer la recherche"
      End If

      If (prix_rech <> "") Then

      Cells.Find(what:=(prix_rech), after:=ActiveCell, LookIn:=xlFormulas, lookat _
      :=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:= _
      False, searchformat:=False).Activate

      colonne_prix_unitaire = ActiveCell.Column

      While (j < 150)

      If (table_resultat(j) <> 0) Then
      prix = Cells(table_resultat(j), colonne_prix_unitaire)
      If ((prix_unitaire < (prix_rech * 0.9) And prix_unitaire > (prix_rech * 1.1)) Or prix_unitaire = "") Then
      table_resultat(j) = 0
      End If

      End If

      j = j + 1
      Wend

      End If


      For l = 1 To 150
      If (table_resultat(l) <> 0) Then
      Sheets("base").Activate
      Range(Cells(table_resultat(l), 3), Cells(table_resultat(l), 10)).Select
      Selection.Copy
      Sheets("dimensionnement").Activate
      Cells(m, 1).Activate
      ActiveSheet.Paste
      m = m + 1
      End If
      Next l

      End Sub

      J'ai comparé à plusieurs reprises votre code à celui-ci et je ne vois pas où peut être l'erreur.
      Pour info, mon classeur se compose de 11 feuilles. La feuille "dimensionnement" est la 4è feuille et la feuille "base", la dernière feuille.
      Par ailleurs, la feuille "base" est un tableau de 21 colonnes. Seules 3 sont utilisées pour la macro et celles-ci ne sont pas adjacentes.

      Je pense avoir plus ou moins bien résumé la chose...
      0
  15. bouket Messages postés 147 Statut Membre 22
     
    :) ! j'ai trouvé deux erreurs :) !

    je donne les extraits :

    If (marque_rech <> "") Then
    
    Cells.Find(what:=(marque_rech), after:=ActiveCell, LookIn:=xlFormulas, lookat _
    :=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase _
    :=False, searchformat:=False).Activate
    
    colonne_marque = ActiveCell.Column
    
    While (Cells(i, colonne_marque).Value <> "") 
    


    devrait plutôt donner, car on cherche l'entête (si le nom de la marque se trouvait ailleurs dans le fichier, ça pourrait être embêtant, mais cela revient au même sinon):

    If (marque_rech <> "") Then
    
    Cells.Find(what:="marque", after:=ActiveCell, LookIn:=xlFormulas, lookat _
    :=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase _
    :=False, searchformat:=False).Activate
    
    colonne_marque = ActiveCell.Column
    
    While (Cells(i, colonne_marque).Value <> "") 
    


    Mais surtout, la faute qui fait que votre macro ne rend rien, la mauvaise manipulation de la variable prix :

    Dim prix As Variant
    .
    .
    .
    colonne_prix_unitaire = ActiveCell.Column
    
    While (j < 150)
    
    If (table_resultat(j) <> 0) Then
    prix = Cells(table_resultat(j), colonne_prix_unitaire)
    If ((prix_unitaire < (prix_rech * 0.9) And prix_unitaire > (prix_rech * 1.1)) Or prix_unitaire = "") Then
    table_resultat(j) = 0
    End If
    
    End If 
    


    Tous les résultats sont donc exclus ;) car prix_unitaire = 0, il faut évidemment écrire :

    Dim prix_unitaire As Variant
    .
    .
    .
    colonne_prix_unitaire = ActiveCell.Column
    
    While (j < 150)
    
    If (table_resultat(j) <> 0) Then
    prix_unitaire = Cells(table_resultat(j), colonne_prix_unitaire)
    If ((prix_unitaire < (prix_rech * 0.9) And prix_unitaire > (prix_rech * 1.1)) Or prix_unitaire = "") Then
    table_resultat(j) = 0
    End If
    
    End If 
    


    voilà voilà, à plus tard !
    0
  16. bouket Messages postés 147 Statut Membre 22
     
    Ah j'allais oublier, votre tableau présentant 21 colonnes, copions la ligne entière tant qu'à faire :

    Sheets("base").Activate
    Range(Cells(table_resultat(l), 3), Cells(table_resultat(l), 10)).Select
    Selection.Copy
    Sheets("dimensionnement").Activate
    Cells(m, 1).Activate
    ActiveSheet.Paste 
    


    à remplacer par:

    Sheets("base").Activate
    Range(Cells(table_resultat(l), 1), Cells(table_resultat(l), 21)).Select
    Selection.Copy
    Sheets("dimensionnement").Activate
    Cells(m, 1).Activate
    ActiveSheet.Paste 
    
    0
  17. Max29
     
    Je viens de corriger et modifier la macro comme vous venez de me l'indiquer ! Par contre, ma macro refuse toujours de sélectionner la ligne ! En gros mon écran saute à chaque fois que j'exécute la macro !
    0
  18. bouket Messages postés 147 Statut Membre 22
     
    étrange, la macro fonctionne chez moi...

    comment est remplie la case prix dans la base désormais ?

    qu'est ce que vous voulez dire par "mon écran saute" !

    p.s.: on y arrive, on y arrive ^^ !
    0
  19. Max29
     
    J'ai peut-être la solution grâce à votre question !

    Dans ma feuille "base", la colonne "prix unitaire" comporte des nombres à virgules. Hier, en regardant plusieurs forums et l'aide Microsoft j'ai cru voir qu'il y avait un code spécial à rentrer pour de tels nombres en lieu et place de "variant" ou "integer" ?

    Par "mon écran saute", j'entends le fait que ma macro semble se bloquer au moment de faire la sélection...
    0
  20. bouket Messages postés 147 Statut Membre 22
     
    Les nombres à virgules sont prix en compte dans Variant, il me semble.
    Mais, peut-être que les nombres dans votre base, ne sont pas pris en tant que nombre ?
    Sont-ils alignés à gauche ou à droite ? Est-ce qu'il y a un . ou une , pour séparer les décimales du reste?
    0
    1. Max29
       
      Ils sont alignés à droite et les décimales sont séparées par une virgule...
      0
  21. bouket Messages postés 147 Statut Membre 22
     
    alors, faire le test suivant...
    changer le nom de colonne prix initiale, puis copier la et mettez le nom habituel, et mettez le format des cellules de la colonne au format nombre avec 0 virgule... nous verrons bien !! héhé
    0
  • 1
  • 2