[VBA] Suivi d'offres

abcd

XLDnaute Barbatruc
Bonjour,

On me pose une question à laquelle je ne peux répondre, normal puisque ce n'est pas réalisable par formules (lol).

Quelqu'un pourrait-il me donner un coup de main en m'écrivant cette macro ?
J'ai analysé le problème au mieux, vous trouverez l'explication sous le feuille "Récapitulatif".

Je vous en remercie d'avance.

abcd
 

Pièces jointes

  • Suivi Offre.zip
    10.7 KB · Affichages: 61
  • Suivi Offre.zip
    10.7 KB · Affichages: 71
  • Suivi Offre.zip
    10.7 KB · Affichages: 71

Gruick

XLDnaute Accro
Re : [VBA] Suivi d'offres

Salut abcd

Faut t'y mettre aux macros, tu es déjà un as en formules alors...

Bon, si j'ai bien compris, la macro doit créer son propre bouton.

Pour mettre des noms, il faudra avoir recours à des boites de dialogues inputbox.
2ème problème : les doublons. Ne serait-il pas mieux de nommer les feuilles selon leur n° d'offre ?

Je suis sûr qu'il y a déjà quelqu'un sur le coup.

A plus,
Gruick
 
Dernière édition:

abcd

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Bonjour Gruik,

Merci de t'être intéressé à mon problème.

Les boutons ne doivent pas être créés par la macro.

La façon de nommer les onglets a été longuement discuté, moi aussi il me semblait que le numéro d'offre aurait été plus logique.

S'il est plus facile de nommer les onglets par le numéro d'offre, je n'y vois pas d'inconvenient, pour autant que le nom de la société et du contact figurent en colonne B et C de la feuille Récapitulatif.
Il faudrait donc que le nom de l'onglet soit modifié après la saisie des trois données.

On ne se servira jamais du nom de l'onglet pour se déplacer parmi les feuilles.
Donc fait comme bon te semble.

abcd
 

porcinet82

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Salut,

Voici un début de code traitant les points 1 à 5 :
L'essentiel du code se trouve dans le module de la feuille Type

@+
 

Pièces jointes

  • Suivi Offre.zip
    20.9 KB · Affichages: 52
  • Suivi Offre.zip
    20.9 KB · Affichages: 51
  • Suivi Offre.zip
    20.9 KB · Affichages: 48

Gruick

XLDnaute Accro
Re : [VBA] Suivi d'offres

re,
Merci abcd de me donner toute licence.
Je viens de penser qu'une même offre peut être sur plusieurs fiches, (ce qui est la raison d'être d'une offre d'ailleurs). Donc la première idée était la bonne.
La création d'une fiche ne pose aucun problème, la nommer non plus. J'en suis là et je vais m'absenter cet après-midi.

Je suppose qu'une fiche doit être renseignée au maximum avant sa copie dans le récapitulatif.

En revanche, je ne sais pas comment "trier" et présenter les onglets par ordre alphabétique, conformément au tableau récapitulatif.

Pour te faire languir, par plaisir sardonique;), voici le début du code
Code:
Sub Création()
' Création Macro
' Macro enregistrée le 9/10/2008 par Gruick
nbfiches = ThisWorkbook.Sheets.Count: MsgBox nbfiches
Sheets("Type").Select
Sheets("Type").Copy After:=Sheets(nbfiches)
Société = InputBox("Nom de la société"): Cells(7, 3) = Société
Contact = InputBox("Nom du contact"): Cells(7, 9) = Contact
ActiveSheet.Name = Société & " " & Contact
End Sub

A plus,
Gruick

Edit : Bonjour Romain, en pleine forme je vois...
On bute sur la même chose, mais vu qu'il y a un lien hypertexte, je pense que ce n'est pas important.
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Bonjour abcd, Gruick, Romain

en passant, un peti code pour trier les onglets, enfin si j'ai bien compris :

nécessite qu'il y ai au moins 2 offres de renseignées dans la feuille "récap".
Code:
Option Explicit
Sub tri()
Dim sh As Worksheet, c As Range, m() As String, i As Byte
Dim t As Byte, u As Byte, temp As String
Application.ScreenUpdating = False
i = 1
For Each c In Range("B6:B" & Range("B65536").End(xlUp).Row)
    ReDim Preserve m(1 To i)
    m(i) = c.Value & " " & c.Offset(0, 1).Value
    i = i + 1
Next c
For i = LBound(m) To UBound(m)
    For Each sh In Worksheets
        If sh.Name = m(i) Then
            sh.Move Sheets(i)
            Exit For
        End If
    Next sh
Next i
Sheets("Récapitulatif").Move Sheets(1)
Sheets("Type").Move , Sheets(Sheets.Count)
Application.ScreenUpdating = True
End Sub

en espérant que cela puisse vous aider.

bon après midi à tous
@+
 

abcd

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Bonjour,

Merci beaucoup à vous trois.

J'ai testé le fichier joint de Porcinet, ce début est parfait et prometteur pour la suite.
Bien que, à mon avis, la boite de message demandant confirmation de la création d'une nouvelle offre est plus gênante qu'utile.

Pierrot ayant donné le code pour le tri des onglets, il suffit de l'ajouter, bien qu'à la reflexion ce ne soit pas absolument indispensable, mais puisqu'il existe ...

Il me semble que trier la feuille "Récapitulatif" ne devrait pas poser grand problème.

Voilà une première partie presque parachevée.
Si quelqu'un pouvait mettre tout cela en musique, j'en serai très heureux.

En attendant je cours aider ceux qui ont des problèmes avec des formules.

abcd
 

porcinet82

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

re,

Bon, voici le fichier avec les points jusqu'a 6 (via le code de Pierrot pour le tri des onglets).

Par contre, concernant les points restants, plutot que de créer un bouton sur chaque onglet créer pour éventuellement le supprimer, pourquoi ne pas créer un bouton de suppression sur l'onglet Récap, ainsi cela éviterai de compliquer les choses.
Dis nous ce que tu en penses...

@+
 

Pièces jointes

  • Suivi Offre.zip
    24.3 KB · Affichages: 50
  • Suivi Offre.zip
    24.3 KB · Affichages: 51
  • Suivi Offre.zip
    24.3 KB · Affichages: 53

abcd

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Re,

Mille mercis, je regarde après t'avoir répondu.

Pour répondre à ta question :
Tel était bien mon intention, créer un bouton "supprimer" en Récapitulatif!A2
qui supprime la ligne de cette feuille contenant le nom de la société sélectionnée, puis l'onglet correspondant.

Peut-être me suis-je mal exprimé ?

Merci encore pour le temps que tu y consacres.

abcd
 

abcd

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Re,

Dernière petite aide.

Quelques petites modifications ont été apportées à la mise en page.
Cela fonctionne toujours, sauf un message d'erreur concernant le lien hypertexte qui ne fonctionne pas.
Il y a-t-il moyen de corriger ce point, en m'expliquant ce que je n'aurai pas du faire ?

Autre point
Je souhaite modifier moi-même le texte du bouton, pouvez-vous m'expliquer comment procéder ?

Je vous en remercie d'avance

abcd
 

Pièces jointes

  • Suivi Contact.zip
    23 KB · Affichages: 52
Dernière édition:

Gruick

XLDnaute Accro
Re : [VBA] Suivi d'offres

re,
Pour les liens hypertextes, c'est peut-être l'espace. Le plus rigolo, c'est que ça marche sur les liens déjà créés.
En plus, je suis sur XL2004 pour Mac, un vrai supplice.
Il quitte excel sur la macro de création de fiches, mais pas en pas à pas.
Bref, pas évident.

Pour la suppression des fiches, tu peux t'inspirer de cette petite macro.

Code:
Sub Suppression()
' Suppression Macro
' Macro enregistrée le 9/10/2008 par Gruick
Set ligne = Application.InputBox("Cliquez sur le nom de la société à supprimer", Type:=8)
fiche = Cells(ligne.Row, 2) & " " & Cells(ligne.Row, 3)
Range(Cells(ligne.Row, 1), Cells(ligne.Row, 6)).Delete Shift:=xlUp
Application.DisplayAlerts = False
Sheets(fiche).Delete
End Sub

A plus,
Gruick
 

abcd

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Re,

Merci Gruik, je vais essayer.

Pour ce qui concerne le lien hypertexte qui ne fonctionne pas, voici ce que je fais pour le faire fonctionner.
Je sélectionne le nom dans la colonne B de la feuille récapitulatif.
Menu Insertion / Lien hypertexte / je clique sur le nom de l'onglet / OK

Cela doit être peu de chose dans la ligne de la macro, mais je ne vois vraiment pas quoi.
Si quelqu'un pouvait y jeter un coup d'oeil.

abcd
 

abcd

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Re,

Petit problème supplémentaire.

Je croyais pouvoir extraire facilement le nom du site (Récapitulatif!C:C) par formule sur base du nom de la société (Récapitulatif!B:B).
Ce n'est pas le cas !

Il y a-t-il moyen de rapatrier aussi par la macro le nom du site en colonne C ?
Ou bien de rapatrier le nom complet de l'onglet (société + site) en colonne B, ce sera probablement plus simple.

Les macros, il faut absolument que je m'y mette un de ces jours !

abcd
 

Pierrot93

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Re

ton fichier en retour, j'ai déplacé une sub dans le module standard, et effectué queques modifs. A priori chez moi les liens ont l'air de fonctionner...

Dans ton dernier post, tu parles de rapatrier les noms, ok cela doit être possible mais on fait quoi ensuite ?

teste et dis moi, je reviendrais demain matin maintenant, si toujours en panne...

bonne soirée
@+
 

skoobi

XLDnaute Barbatruc
Re : [VBA] Suivi d'offres

Bonsoir abcd :),
Pierrot :),
Re,
Les macros, il faut absolument que je m'y mette un de ces jours !
abcd

(N'apporte rien à la discussion).
Et bien moi c'est l'inverse abcd ;).
Je pense que effectivement une maitrise de VBA et des fonctions devrait permettre de faire des choses vraiment sympa, je m'en rend compte de plus en plus quand j'associe les 2!

Bonne soirée :)
 

Discussions similaires

Réponses
10
Affichages
515
Réponses
5
Affichages
346
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16