Forum Clubic

Question sur fonction excel

Bonjour à tous,

Donc voilà, on m’a demander de faire un classeur, mais certaine choses dépasse mes compétences.

Alors voici.

J’ai un classeur avec sur la feuil1 un menu déroulant. Je souhaiterais que lorsque une valeur(produit) est sélectionné dans le menu déroulant de la feuil1, certaines cellules des données correspondant au dit produit (Feuil2) soit recopié en feuil1.

Pour schématisé : si valeur A5=Nom du produit alors valeur B5=Valeur feuil2!C5

Sachant que j’ai plusieurs cellule à recopier comme ça.

De plus, mais là je pense qu’il faut passer par de la macro…sic!! Au fur et à mesure des saisies des tableaux sont générs en feuil3 qui est donc un rapport. J’aimerais pouvoir créer un bouton en feuil1 qui renvoie vers l’ouverture du dit rapport dans une feuille html ou pdf, là peut importe.

A votre bon cœur et merci.
Edité le 14/06/2010 à 11:23

Pour le premier point :
Tu veux vraiment RECOPIER les valeurs de la feuille 2 dans la feuille 1 ?
D’après l’exemple que tu donnes, à chaque fois que tu vas changer de valeur choisie dans ta liste déroulante, tu vas écraser les anciennes valeurs (ici en B5)
Dans ce cas, pas besoin de copier, il suffit d’une simple formule pour faire référence à la feuille 2.
Il faudrait savoir comment elle est faite, mais un RECHERCHEV() ferait peut être l’affaire.

Pour second : si ta page rapport est déjà générée dans le feuillet 3, tu t’enregistres une macro automatique qui active ce feuillet, puis qui l’imprime ensuite au format PDF (avec PdfCreator, par exemple).
Et tu n’as plus qu’à associer cette macro à un bouton sur ta feuille 1

Bonjour toi gcc :hello:

Alors pour le 1:

Ma feuil2 se pésente à peut prés comme ça:

Produit Donnée1 Donnée2 Donnée3…
Produit1 X1 X2 X3 …
Produit2 Y1 Y2 Y3 …

Edit j’arrive pas à alligner les données ci-dessus

Dans la feuil1 de saisi j’ai le menu déroulant correspondant à la liste produit.

Donc si je sélectionne dans la liste le produit X, je voudrais recopier les donnée correspondant donnée1…etc… dans une autre cellule celle-ci étant utilisé pour les calculs et la génération des tableau en feuil3.

En espérant avoir été clair:)

Pour le 2, ben là c’est le drame, de la macro je ne connais que le terme^^ le reste c’est du mandarin :smiley:

Par contre je pense que la génération du rapport serait plus intéressante en format web, en effet je ne serais pas le seul à utiliser cette feuille de calcul, et tous le monde n’a pas d’imprimante pdf.

Merci.
Edité le 04/06/2010 à 14:47

Ta feuille 2 a l’air de bien se présenter pour qu’on fasse une recherche dessus (en fait, la condition c’est que la valeur de référence soit dans la colonne la plus à gauche)

D’abord, il faut que tu nommes le tableau des tes valeurs dans ta feuille 2.
En suite regarde dans l’aide en ligne ce qui concerne la fonction RechercheV(), et applique-là à la cellule où tu souhaites voir apparaître ta valeur.
Ca devrait donne quelque chose comme RechercheV(X; TV; D;faux)
avec X la cellule correspondant à ta liste déroulante
TV le nom de ton tableau de valeurs dans la feuille 2
D un nombre correspondant à la colonne du tableau dans laquelle se trouve la donnée que tu cherches (dans ton exemple 2 pour Donnée1, 3 pour Donnée2, 4 pour Donnée3…)

Pour ce qui est de la macro, excel dispose pour les opérations simples d’un outil pour enregistrer les actions que tu fais et écrire directement la macro correspondante. Ensuite tu la modifies au besoin, en te faisant aider si besoin
Tu y accèdes par Outils > Macro > Nouvelle Macro.
Regarde dans l’aide Créer Macro > pour enregistrer une macro

Et pour le pdf, pas forcément besoin de l’imprimer. Ca se visualise très bien dans un navigateur web.

ok merci je regarde ça de plus pret.

Par contre quid de la cellule cible ( où je veux recopier la donnée de la cellule de donnée)

car si D est la cellule de donnée que je recherche, comment derrière recopier cette cellule ailleurs pour l’utiliser dans mes calculs pour la génération des rapports.

En reprenant l’exemple ci dessus.

Si je veux récupérer la donnée ( Produit2/donnée3) soit ici noté Y2, si je comprend bien dans ton exemple ici le X=Produit 2 / TV=nom du tableau ( d’ailleurs comment attribut-on un nom à un tableau?? Menu Insérer>nom>définir un nom??) et donc D=3;

Mais aprés si je veux recopier cette donnée dans une autre cellule pour être utilisé dans un calcul??

ouep, je commence à voir le truc…

Donc inutile de recopier la cellule puisque j’applique la fonction rechercheV directement sur la cellule qui doit être utilisés pour les calculs.

C’est bien ça?

C’est bien ça

C’est la même chose, au lieu de la copier, tu y fais référence.
Par exemple, si elle est dans la cellule E5 de la feuille1 et que tu en as besoin dans la cellule B4 de la feuille 3, dans cette cellule B4 tu tapes =Feuil1!E5

Mais je n’ai peut être pas très bien compris la question ?

Edit :
je n’avais pas vu ton message de 16h28.
Je pense que tu es sur la bonne piste
Edité le 04/06/2010 à 16:33

Yep, je confirme la fonction rechercheV fonction impec pour ce que je cherchais à faire…

Par contre j’ai une coquille qui traîne^^^héhé!! m’en va essayer de trouver ça.

Je passerais à la macro après…Chaque chose en son temps.

noob inside :ane:

Bonjour à tous,

Espérant que le WE fût bon, je reviens à la charge.:smiley:

Bon tout fonctionne relativement bien.

Je teste un peu les macro, et me suis aperçu, que la fonction fichier> aperçu de la pages web pourrait très bien être la fonction que je recherche, puisque je cherche à afficher la feuille de Rapport dans le WebBrowser.

Là où je coince, c’est comment limiter cette aperçu à une seule feuille du classeur.

Merci.

Pour pouvoir visualiser à travers un navigateur, il te faut un document enregistré (html, pdf etc …)
Ce n’est donc pas avec un aperçu que tu pourras arriver à tes fins.
Il faut que tu regardes soit du côté du Enregistrer sous, où tu dois avoir en particulier une option d’export au format HTML,
soit du côté de Imprimer et de Mise en page.

Hello.

Bon j’ai testé avec la fonction d’enregistrement en pages web (mht,mhtml), quelque paramètres plus tard je séléctionne la feuille que je souhaite voir afficher je lui demande d’ouvrir le fichier dans le navigateur après publication, etç a fonctionne nickel.

Je vais alors dans Outils>macro pour enregistrer une macro comme tu me le disais plus haut. Ma feuille s’ouvre bien en pages Web.

J’enregistre tous ça. je créer mon bouton et lui affecte la macro. et là c’est le drame. Le fichier est bien créer, mais il ne l’ouvre pas dans l’explorateur WEB. j’ai retenté plusieurs fois le truc sans résultat…

Voici le code généré :

Sub Simulation()

’ Simulation Macro


With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
“C:\Users\Keupon\Desktop\Rapport de simulation.mht”, “Feuil3”, “”, xlHtmlStatic, _
“Rentabilité3 Gwendal_2804”, “”)
.Publish (True)
.AutoRepublish = False
End With
End Sub

Merci.

j’ai ré-essayé en allant d’abord dans les paramètres et options de la sauvegarde en page web, mais toujours pas d’ouverture du fichier.

Code:

Application.WindowState = xlMinimized
With ActiveWorkbook.WebOptions
.RelyOnCSS = True
.OrganizeInFolder = True
.UseLongFileNames = True
.DownloadComponents = False
.RelyOnVML = True
.AllowPNG = True
.ScreenSize = msoScreenSize1024x768
.PixelsPerInch = 300
.Encoding = msoEncodingWestern
End With
With Application.DefaultWebOptions
.SaveHiddenData = True
.LoadPictures = True
.UpdateLinksOnSave = True
.CheckIfOfficeIsHTMLEditor = True
.AlwaysSaveInDefaultEncoding = False
.SaveNewWebPagesAsWebArchives = True
End With
With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
“C:\Users\Keupon\Desktop\Rapport de simulation2.mht”, “Feuil3”, “”, _
xlHtmlStatic, “Rentabilité3 Gwendal_11496”, “”)
.Publish (True)
.AutoRepublish = True
End With
End Sub

Tu veux dire quoi, là exactement ?
Qui n’ouvre pas qui ?

En fais je cherche à ouvrir ma feuill3 (rapport) dans une pages web via un bouton en feuill1.

Hors lorsque je fais fichier>sauvegarder en page web cela fonctionne, mais si je fais la même chose en enregistrant la macro, puis en l’attribuant au bouton, le clic sur celui-ci me créer le fichier (*.mth), mais l’ouverture de celui-ci dans le web browser ne se fait pas, alors que la même manipulation faite manuellement fonctionne.

Espérant avoir était suffisamment clair.

Hello les clubiciens,

Bon j’ai beau faire et refaire, j’avoue que je comprends pas le truc.

Sinon est-il possible de rajouter dans ce cas une commande pour aller ouvrir ce bon vieux fichier.

Une autre question en passant, mais ce document va bouger de poste en poste, et je suppose que dans ce cas il faudrait intégrer des chemins relatif, mais comment cela ce gère en macro?

:fou:

Merci.

Ah Ah!

Encore une chose.

Histoire d’agrémenter mon rapport, j’ai créer un autre tableau avec les références produits et les photos correspondantes.

J’ai voulu appliquer le rechercheV, pour afficher la photo correspondante dans le rapport.

Cependant au lieu de m’afficher l’image, il m’affiche le chiffre 0; peut-étre y’t-il une subtilité lorsqu’il s’agit de photo??

Merci.

Visiblement, c’est un truc qui n’a pas l’air d’être prévu, ta macro n’enregistre aucune indication concernant l’ouverture ou non dans une page web.
Peut être que tu peux ajouter en fin de macro la commande correspondant à Aperçu de la page web ?
Ce n’est pas exactement la même chose, mais ça peut peut être faire l’affaire.

Normalement une photo, c’est un objet image, pas le contenu d’une cellule.
Donc logique que RechecheV() te remonte 0.
A la limite, dans la cellule sous la photo, tu peux mettre ses coordonnées qui seront alors remontées par RechercheV(). Par contre, il te faudra trouver un truc pour retransformer les coordonnées en question en image dans ton document cible

Ok merci Gcc

Je regarde ça de plus prés;

Pour les photos, je suis en train de voir, peut-être une solution avec la fonction “décaler”, en test ^^

Bonjour à tous.

Bon ça avance tranquillement, mais ça avance…

Reste encore un peu de boulot, mais rien de bien méchant.

L’idée du decaler, ne semble pas très judicieuse dans mon cas, mais j’ai trouvé ceci, reste à plancher et travailler un peu le truc^^

Pour ce qui est de pouvoir ouvrir le fichier généré en rapport j’ai fini par trouver, voici ce que cela donne(la commande RetVAl étant celle qui va m’ouvrir le fichier).


Sub Simulation()
'
' Simulation Macro
'

'
    With ActiveWorkbook.WebOptions
        .RelyOnCSS = True
        .OrganizeInFolder = True
        .UseLongFileNames = True
        .DownloadComponents = False
        .RelyOnVML = True
        .AllowPNG = True
        .ScreenSize = msoScreenSize1024x768
        .PixelsPerInch = 300
        .Encoding = msoEncodingWestern
    End With
    With Application.DefaultWebOptions
        .SaveHiddenData = True
        .LoadPictures = True
        .UpdateLinksOnSave = True
        .CheckIfOfficeIsHTMLEditor = True
        .AlwaysSaveInDefaultEncoding = False
        .SaveNewWebPagesAsWebArchives = True
    End With
    With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
        "C:\Users\public\dossier test\Rapport de Simulation.mht", "Feuil3", "", _
        xlHtmlStatic, "Calcul de rentabilité", "Rapport de Simulation")
        .Publish (True)
        .AutoRepublish = False
    End With
    ChDir "C:\Users\public\dossier test"
    RetVAl = Shell("C:\Program Files\Internet Explorer\iexplore.exe c:\Users\public\dossier test\Rapport de simulation.mht", 1)
    End
End Sub


Merci.
Edité le 14/06/2010 à 11:29