Excel, lien entre tableau et devis
france_736
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je suis commerciale, je vends des caisses enregistreuses.
Afin de simplifier l'élaboration des devis, j'ai créé un tableau sous excel qui reprends la liste des différents produits dans la colonne C par exemple.
Et dans la colonne B, il y a un zéro. si je remplace ce zéro par un 1, le prix du ou des produits concernés s'affiche et j'ai rapidement le total en euro en bas du tableau.
Voici ma question :
j'aimerais que le ou les produits devant lesquels je mets un "1" au lieu du "0" soit directement envoyé dans un devis préenregistré (avec en-tête, adresse du client etc.. donc un document officiel présentable,imprimable et destiné au client. il verrait donc uniquement les produits qui l'interesse et le prix, et pas la liste complète de tous les produits avec un "1" devant ce qu'il m a demandé)
dois-je faire mon devis dans une deuxieme feuille excel ou plutot Word; comment faire le lien entre ces deux documents en sachant qu'il y a une condition "si" puisque on prend la ligne en compte SI il y a un "1" devant uniquement.
il y aurau un espace réservé aux cellules prises en compte mais comment ces cellules vont telle venir se mettre l'une à la suite de l'autre à l'endroit ou je l'ai décidé
....
D avance merci
je suis commerciale, je vends des caisses enregistreuses.
Afin de simplifier l'élaboration des devis, j'ai créé un tableau sous excel qui reprends la liste des différents produits dans la colonne C par exemple.
Et dans la colonne B, il y a un zéro. si je remplace ce zéro par un 1, le prix du ou des produits concernés s'affiche et j'ai rapidement le total en euro en bas du tableau.
Voici ma question :
j'aimerais que le ou les produits devant lesquels je mets un "1" au lieu du "0" soit directement envoyé dans un devis préenregistré (avec en-tête, adresse du client etc.. donc un document officiel présentable,imprimable et destiné au client. il verrait donc uniquement les produits qui l'interesse et le prix, et pas la liste complète de tous les produits avec un "1" devant ce qu'il m a demandé)
dois-je faire mon devis dans une deuxieme feuille excel ou plutot Word; comment faire le lien entre ces deux documents en sachant qu'il y a une condition "si" puisque on prend la ligne en compte SI il y a un "1" devant uniquement.
il y aurau un espace réservé aux cellules prises en compte mais comment ces cellules vont telle venir se mettre l'une à la suite de l'autre à l'endroit ou je l'ai décidé
....
D avance merci
A voir également:
- Excel, lien entre tableau et devis
- Tableau word - Guide
- Trier un tableau excel - Guide
- Word et excel gratuit - Guide
- Lien url - Guide
- Imprimer un tableau excel - Guide
6 réponses
Bonjour,
Qu'elle que soit la solution que tu choisiras, il faut savoir que ce genre de chose se fait par procédure VBA (Macro).
Donc, tu as le choix entre utiliser une seconde feuille de ton classeur ou un doc word.
A ta place, je préfèrerais n'utiliser que mon classeur excel. On pourrait même imaginer une 3ème feuille qui te servirais de base de données avec tous tes devis enregistrés...
Le mieux pour nous maintenant, ça serait que tu construises tes 2 feuilles (tu as déjà réalisé la 1ère il me semble). Donc tu fais ta feuille "devis", avec des infos bidons et tu nous la transfères ici en utilsant https://www.cjoint.com/
Tu va sur ce site créer un lien vers ton fichier puis reviens ici coller ce lien dans une réponse.
En attente du fichier.
Qu'elle que soit la solution que tu choisiras, il faut savoir que ce genre de chose se fait par procédure VBA (Macro).
Donc, tu as le choix entre utiliser une seconde feuille de ton classeur ou un doc word.
A ta place, je préfèrerais n'utiliser que mon classeur excel. On pourrait même imaginer une 3ème feuille qui te servirais de base de données avec tous tes devis enregistrés...
Le mieux pour nous maintenant, ça serait que tu construises tes 2 feuilles (tu as déjà réalisé la 1ère il me semble). Donc tu fais ta feuille "devis", avec des infos bidons et tu nous la transfères ici en utilsant https://www.cjoint.com/
Tu va sur ce site créer un lien vers ton fichier puis reviens ici coller ce lien dans une réponse.
En attente du fichier.
http://cjoint.com/*****.htm
voici le doc avec deux feuilles excel comme prévu
le devis est à titre d'exemple je l'ai fait vite fait ...
voici le doc avec deux feuilles excel comme prévu
le devis est à titre d'exemple je l'ai fait vite fait ...
http://cjoint.com/*****.htm
voici le doc avec deux feuilles excel comme prévu
le devis est à titre d'exemple je l'ai fait vite fait ...
Merci pour votre réponse si rapide :)
voici le doc avec deux feuilles excel comme prévu
le devis est à titre d'exemple je l'ai fait vite fait ...
Merci pour votre réponse si rapide :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour,
j'ai mis le tableau en ligne pour une duréede 4 jours maximum.
Avez-vous eu assez de temps pour y jeter un oeil ?
je peux le remettre si necessaire.
merci,
France
j'ai mis le tableau en ligne pour une duréede 4 jours maximum.
Avez-vous eu assez de temps pour y jeter un oeil ?
je peux le remettre si necessaire.
merci,
France
génniiaallllll merci :) vraiment le top !!! je suis super contente
mais je vais encore demander une chose :
pourriez-vous m'expliquer votre macro en la copiant ici (si c est possible)
que que je puisse par exemple juste aller changer dans la macro la colonne à copier en cas de 1.
je m explique, ici nous copions la colonne D ("le libellé" du produit) lorsqu'il y a un '1', ca on est bien d accord,
mais maintenant que je sais que ca fonctionne (grace à vous <3 :)))) ) et bien je vais ajouter une colonne avec un libellé plus simple pour le client, donc si je peux aller par la suite changer dans votre macro la colonne D en .. X (par exemple), ce sera parfait.
et si je comprends bien le mecanisme, je pourrai ajouter peut etre par la suite une ou deux choses mais je dois en parler avec le patron, nous allons mettre ca au point et si vraiment je ne me debrouille pas avec vos explications, je ferai de nouveau appelle à votre gentillesse....
pour info, je ne sais pas ou on voit la macro dans excel :/ et oui je n y connais pas grand chose, j ai eu quelques cours mais bon pas suffisant et jamais de macro (si c est bien de ca que nous parlons) donc si vous pouviez aussi m indiquer ou je vais la chercher ca m aide :)
alors je dois enregistrer votre document sur cjoint dans mon ordi je suppose et par la suite il ne sera plus trouvable ? car je ne peux laisser trop longtemps ces informations sur le net, si vous voyez ce que je veux dire :) mais pas de probleme le temps que nous ayons fini le boulot
je vous remercie encore une fois, c est génial ce site autant que vous, énorme!!
mais je vais encore demander une chose :
pourriez-vous m'expliquer votre macro en la copiant ici (si c est possible)
que que je puisse par exemple juste aller changer dans la macro la colonne à copier en cas de 1.
je m explique, ici nous copions la colonne D ("le libellé" du produit) lorsqu'il y a un '1', ca on est bien d accord,
mais maintenant que je sais que ca fonctionne (grace à vous <3 :)))) ) et bien je vais ajouter une colonne avec un libellé plus simple pour le client, donc si je peux aller par la suite changer dans votre macro la colonne D en .. X (par exemple), ce sera parfait.
et si je comprends bien le mecanisme, je pourrai ajouter peut etre par la suite une ou deux choses mais je dois en parler avec le patron, nous allons mettre ca au point et si vraiment je ne me debrouille pas avec vos explications, je ferai de nouveau appelle à votre gentillesse....
pour info, je ne sais pas ou on voit la macro dans excel :/ et oui je n y connais pas grand chose, j ai eu quelques cours mais bon pas suffisant et jamais de macro (si c est bien de ca que nous parlons) donc si vous pouviez aussi m indiquer ou je vais la chercher ca m aide :)
alors je dois enregistrer votre document sur cjoint dans mon ordi je suppose et par la suite il ne sera plus trouvable ? car je ne peux laisser trop longtemps ces informations sur le net, si vous voyez ce que je veux dire :) mais pas de probleme le temps que nous ayons fini le boulot
je vous remercie encore une fois, c est génial ce site autant que vous, énorme!!
sur cjoint, si personne n'y retourne et ne le télécharge, il sera effacé dans quelques jours.
Il faut donc demander à un modérateur d'ici de supprimer dans les deux messages ou toi et moi avons fait un lien vers ton fichier, ce fameux lien. Comme ça : plus d'accès à ton fichier sur cjoint.
Oui enregistre le, je te fais les commentaires de la macro dans une réponse.
A tout à l'heure.
Il faut donc demander à un modérateur d'ici de supprimer dans les deux messages ou toi et moi avons fait un lien vers ton fichier, ce fameux lien. Comme ça : plus d'accès à ton fichier sur cjoint.
Oui enregistre le, je te fais les commentaires de la macro dans une réponse.
A tout à l'heure.
Pour accéder au code VBA, dans ce cas, clic droit sur l'onglet « Feuil1 » / visualiser le code.
Regarde ça, j'ai essayé d'être explicite, quitte à horrifier les puristes... :
Et dis moi...
Cordialement,
Franck P
Regarde ça, j'ai essayé d'être explicite, quitte à horrifier les puristes... :
'signifie que toutes les variables devront être déclarées
Option Explicit
'cette procedure se déclenche automatiquement lorsque la feuille en question ("Feuil1")
'change. Quelque soit le changement dans cette feuille. Ne concerne que la Feuil1.
Private Sub Worksheet_Change(ByVal Target As Range)
'déclaration des variables
Dim DrLg As Long, Lig As Integer, Trouve As Range
'******** ici on va definir la plage qui provoquera l'événement lors d'un changement*****
'dernière ligne non vide de la colonne C
DrLg = Range("C" & Rows.Count).End(xlUp).Row
'Target = cellule qui a changé
's'il n'y a pas d'intersection entre la cellule et le Range([C12], Cells(Rows.Count, 3).End(xlUp)))
'soit si la cellule qui a changé n'appartient pas à « C12:C85 » (dans ton exemple)
'alors on quitte la procédure et on ne fait rien.
If Intersect(Target, Range([C12], Cells(Rows.Count, 3).End(xlUp))) Is Nothing Then Exit Sub
'si le contenu de la cellule qui a changé est égal à 1 alors
If Target.Value = 1 Then
'dans la feuil2
With Sheets("Feuil2")
'on determine la ligne qui va recevoir les données colonne A
Lig = .Range("A23").End(xlUp).Row + 1
'cette ligne doit au minimum être supérieure ou égal à 8
If Lig < 8 Then Lig = 8
'si tout est remplit (à partir de la ligne 22)
If Lig >= 22 Then
'alors le devis est considéré comme remplit ==> message
MsgBox "Devis complet! Enregistrement annulé"
'on ne fait rien et on quitte la procédure
Exit Sub
End If
'si tous les tests precedents sont ok alors :
'on remplit les colonnes A et F des données situées :
'Target.Offset(0, 1) = décaler de 0 ligne et de 1 colonnes à droite de la Target
'soit colonne D Feuil1
.Range("A" & Lig) = Target.Offset(0, 1)
''Target.Offset(0, 2) = décaler de 0 ligne et de 2 colonnes à droite de la Target
'soit colonne E Feuil1
.Range("F" & Lig) = Target.Offset(0, 2)
End With
'Par contre, si le contenu de la cellule qui a changé est égal à rien ou 0 alors
ElseIf Target.Value = "" Or Target.Value = 0 Then
'dans la feuil2
With Sheets("Feuil2")
'entre Feuil2 !A8:A22 on cherche le contenu de la colonne D, cellule voisine de Target
Set Trouve = .Range("A8:A22").Cells.Find(Target.Offset(0, 1).Value, Lookat:=xlWhole)
'si on ne le trouve pas. (cas de l'effacement d'un zéro par exemple)
If Trouve Is Nothing Then
'un message d'information préviens
MsgBox "Le devis ne comportait pas cette élément!, veuillez vérifier"
Exit Sub
Else
'si on trouve le contenu de la cellule (voisine à Target Colonne D Feuil1) dans la plage Feuil2 !A8 :A22 Alors
'on prends son numéro de ligne
Lig = Trouve.Row
End If
Set Trouve = Nothing
'le but est d'effacer cette ligne alors :
'on coupe les cellules comprises entre A(Ligne+ 1) et F22
'et on les colle une ligne au dessus, donc à la place de la ligne que l'on veux effacer
.Range("A" & Lig + 1 & ":F22").Cut .Range("A" & Lig)
End With
'A partir d'ici on remets juste une bordure à la plage A8:F24
With Sheets("Feuil2").Range("A8:F24").Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Sheets("Feuil2").Range("A8:F24").Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Sheets("Feuil2").Range("A8:F24").Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Sheets("Feuil2").Range("A8:F24").Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
End If
End Sub
Et dis moi...
Cordialement,
Franck P