mise a jour des références dans un macro

doudou56

XLDnaute Nouveau
Bonjour,

je suis un petit nouveau sur le forum malgré mon age un peu avancé ....quoi que 56 ans ça va encore !
mais aujourd'hui j'ai un petit problème avec ...avec EXCEL
voila je me suis fait un petit classeur Excel "Devis factures" dont l'organisation est la suivante:
Feuil1 "domiciliation" : je rentre tous mes cordonnées personnel qui vont êtres en référent pour toutes les autres feuilles
feuil2 "facturations" je rentre les coordonnées des mes clients (étant un tout petit artisan j'ai prévu 15 clients)
il y a donc 15 lignes (Non, Adresse, Code Postale, Ville, Date devis, Date Facture)

jusqu’à là rien de très compliqué
ensuite il y a 15 serie de 2 feuilles

feuil3 "devis 1"
feuil4 "facture 1"

feuil5 "devis 2"
feuil6 "facture 2"

cela pour les 15 lignes

Dans un premier temps j'ai voulu que les feuilles prennent le du clients + devis ou facture en fonction
j'ai donc mis le code suivant pour chaque feuille (que j'ai trouvé sur le net) et jel'ai mis dans un module "1"

Sub RenameTabs()
'Updateby20140624
For x = 1 To Sheets.Count
If Worksheets(x).Range("B15").Value <> "" Then
Sheets(x).Name = Worksheets(x).Range("B15").Value
End If
Next
End Sub

Après je me suis dit que si je créais dans la feuil2 des boutons qui m’envoie sur chaque feuille cela serait TOP
donc j'ai fait des boutons, enregistré des macros et les attribuer les uns aux autres
COOL
code des macros :
Sub Devis01()
'
' Devis01 Macro
'

'
Sheets("Devis - 1").Select
Range("B22:H22").Select
End Sub

mais parce qu’il y a toujours un mais quand le onglet se mets a jours en fonction des entrées que je fait dans la feuille Facturation les références dans les macros des boutons ne sont plus bonnes

et bien là mon "mais " ... : je trouve pas !!!

qui pourrait me dire comment faire
j'ai mis une copie du fichier si cela peux aider pour comprendre

merci pour les réponses à venir

Doudou56
 

Pièces jointes

  • Devis et Facture - vierge.xlsm
    259.2 KB · Affichages: 59
Dernière édition:

doudou56

XLDnaute Nouveau
Bonjour
merci pour la réponse

mais cela ne résout pas le problème quand l'onglet va se mettre a jour avec le nom du client
nom de la feuille cible "Devis 1 -" + "nom du client"

il faudrait que les macro des boutons mettent a jour leur références :
ancien nom "Devis 1 -" + "nom du client"
 

sousou

XLDnaute Barbatruc
bonjour
Une seule macro pour tous les boutons devis ou facture
Attention j'utilise la structure de ta feuille facturation alors si tu la modifie!!
Le principe je repère la ligne et la colonne ou ce trouve le bouton
La ligne va me permettre de connaitre le numéro du devis ou de la facture la colonne si c'est un devis ou une facture
Ensuite une petite tambouille pour voir quelle est la feuille concernée
je n'utilise pas le nom du client
Affect chaque bouton à cette macro


Sub devis()
'renvoi le bouton et regarde la ligne ou il est situé
bouton = Application.Caller
ligne = ActiveSheet.Shapes(bouton).TopLeftCell.Row
colonne = ActiveSheet.Shapes(bouton).TopLeftCell.Column
'utilise ce numéro de ligne pour connaitre le numéro du devis
numéro = ActiveSheet.Cells(ligne, 3)
montype = ActiveSheet.Cells(11, colonne - 1) 'devis ou facture
For Each i In ThisWorkbook.Sheets
'Extraction du numéro contenu dans le nom de l'onglet
n = InStr(1, i.Name, " ")
n2 = InStr(1, i.Name, "-")
If n <> 0 And n2 <> 0 Then
nfeuille = Val(Mid(i.Name, n + 1, n2 - n - 2))
'______________________
'active la feuille correspondante
If nfeuille = numéro And LCase(Left(i.Name, Len(montype))) = LCase(montype) Then
feuille = i.Name
'MsgBox feuille
Sheets(feuille).Activate
Exit Sub
End If
End If
Next
End Sub
 

sousou

XLDnaute Barbatruc
Tu pourrais aussi te passer des boutons avec un doubleclick dans la cellule correspondante
Les deux solutions sont actives dans le fichier joint (mais tous les boutons ne sont pas affectés)
j'ai oublié ton range select à ajouter après la sélection de la feuille
 

Pièces jointes

  • Copie de Devis et Facture - vierge.xlsm
    274.4 KB · Affichages: 45

doudou56

XLDnaute Nouveau
les boutons ne créent pas de nouveaux onglet mais ils renvoient au devis ou facture du bon client
il y a 15 clients possible donc un devis et une facture par client donc 30 onglets + 3 onglets =33 onglets
un fois fini je vais tout verrouiller et seule les cellules en couleur seront modifiable.
c'est peut êtres beaucoup mais assez simple comme facturier pour un petit artisan comme moi et si j'ai plus de 15 clients dans l'année je peux juste en faire un deuxième
ça regroupe toutes mes factures en un seul fichier facile a remplir, a exporter en PDF pour l'envoyer par mail
mais bon je veux bien un retour critique sur mon fichier
 

doudou56

XLDnaute Nouveau
mon problème maintenant c'est que la macro de mise a jour des noms des onglets ne se font pas automatiquement il faut que je la fasse manuellement
il y a t'il quelque un endroit a valider pour que cela se fasse dès la saisie d'un client,
merci
 

sousou

XLDnaute Barbatruc
Bonjour
Pourqoui ca marche sans le bouton? J'ai ajouté du code dans la feuille facturation, qui si tu le souhaites rendra les boutons inutiles.
Tu n'as pas tout compris? Dis mois ce que tu ne comprend pas j’essaierai de te répondre avec plus de précision
Pour ma part je n'ai pas bien compris ce que tu veux faire avec ta macro mise à jour. Que veux tu quelle fasse et à quel moment?
 

doudou56

XLDnaute Nouveau
bonjour Sousou,

merci pour le partage de tes compétences
je viens de comprendre le pourquoi du fonctionnement sans bouton
on peut mettre du code directement dans une feuille
il faut dire que mes propres compétences s’arrêtent au format de cellules et leurs liaisons ...du simple quoi !

pour ma macro de mise a jour cela a à voir avec le nom des onglets
1 - ils sont par groupe de deux (Devis Facture) avec un nom de base
2 - ils font référence à une ligue de la feuille "Facturation"
3 - a chaque nouveaux projet pour un client je fait un devis
donc je remplis une ligue dans la feuille "Facturation"
quand je mais le nom du client dans la ligue 1 je voudrais que se rajoute aux nom des deux onglets le noms du client

exemple :
ligne 1 client "Dupont" (quelle originalité!!!)
l' onglet "Devis 1 - " devient "Devis 1 - Dupont "
l' onglet "Facture 1 - " devient "Facture 1 - Dupont "

pour une histoire de doublons dans le noms des onglets il faut qu'il y est trois entrées :
"devis ou facture" + (1 ,2 ou3 ...) + le nom du client
tout ça si je fait plusieurs projet pour le même client

Moi j'ai résolut ça avec un case intermédiaire qui regroupe les trois entrées et la macro "RenameTabs" y fait référence.
(macro que j'ai trouvé sur le net et que j'ai essayé d'appliquer dans mon fichier)

voila j’espère que je suis assez explicite

Doudou
 
Dernière édition:

sousou

XLDnaute Barbatruc
Re
Je crois que j'avais compris mais merci.
Dans le fichier joint lorsque tu modifies le nom dans la feuille facturation, il va nommer les feuilles devis et facturation en fonction.
Si tu as tous compris tu vois que j'utilise le numéro contenu dans le nom des feuille pour trouver la feuille qui m’intéresse (1....15)
Dans cette nouvelle fonction je pratique de même, j'ai donc passé ce calcul de numéro en fonction afin de l'utiliser dans les deux actions.
Nota: Grisan n'a pas tord sur le nombre d'onglet, car je te souhaites d'avoir un max de commandes.
Mais il sera toujours temps passer par d'autres solutions .......
 

Pièces jointes

  • Copie de Devis et Facture - vierge.xlsm
    283.4 KB · Affichages: 57

doudou56

XLDnaute Nouveau
Bonsoir,

Merci pour tout ce que tu as fait c'est TOP
pour le nombre de facture je pense que cela suffira car je vais l'utiliser que pour un de mes deux métier que je pratique a mi-temps chacun
un mi-temps ou je fabrique et répare des Kayak, des pirogues polynésienne et des bateau en bois
le fichier est pour cette partie là de mon travail
l'autre mi-temps je suis Pizzaiolo donc pas de facture mais un autre tableau excel pour le comptage journalier des Pizzas
Voila merci encore je croix que je peux fermer la discussion officiellement en résolu a moins que tu est des chose a rajouter
Cordialement
Doudou
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 898
Membres
101 834
dernier inscrit
Jeremy06510