Nommer une nouvelle feuille excel d'après InputBox et compteur [VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 23-02-2009 à 16:39:59
Pour mon premier problème j'ai résolu le nom automatique de ma nouvelle feuille.
Reste le problème d'affichage. Par contre j'ai un peu changé ma méthode, je copie d'abord mes boites de dialogues dans ma feuille regroupant tous les clients puis après je les recopie dans ma nouvelle feuille. Mais maintenant il faut que je trouve comment insérer les informations à la première ligne vide.
Pour ma deuxième macro, je n'ai pas avancé depuis tout à l'heure...
Voici ma nouvelle 1ère macro avec problème d'affichage sur la feuille créée.
Citation : Sub Nouvelle_fiche() |
Marsh Posté le 23-02-2009 à 17:02:42
Je viens de comprendre mon problème d'affichage. En fait ce que je colle est une image de ma feuille et non pas les cellule et leurs contenus... Mais je ne comprends pas pourquoi...
Marsh Posté le 23-02-2009 à 17:41:04
Voici mon nouveau code. Mon vrai gros problème à présent c'est d'écrire à la ligne suivant la dernière remplie.
Citation : Sub Nouvelle_fiche() |
Marsh Posté le 24-02-2009 à 11:50:32
Bon bah moi je continue mon petit bonhomme de chemin, je vous fais part de mes solutions si ça peut aider d'autres débutants comme moi.
Pour ma 1ère macro j'en ai presque fini. Ce qui me manque maintenant ce serait de créer au sein de la macro, un lien dans la feuille "Base Clients", depuis la cellule Nom du Client (le résultat de l'InputBox d1 dans ma colonne A) qui ouvrirait la feuille du client créée en automatique au sein de cette même macro.
Voici ma macro :
Citation : Sub Nouvelle_fiche() |
Cependant pour ma deuxième macro ou je souhaite intégrer un compteur au sein d'autres éléments dans une cellule en gros avoir un résultat comme ci-dessous, je n'ai pas avancé :
Citation : Sub Ajout_affaire() |
Marsh Posté le 26-02-2009 à 16:26:56
J'ai finalement trouvé une solution à mon problème de compteur. J'ai rusé En fait j'ai dédié une cellule masquée et je l'incrémente à +1 chaque fois que je clique sur mon bouton d'ajout d'affaire. Ensuite j'ai appelé le texte de cette cellule d5, ainsi j'ai replacé mon d5 dans mon numéro d'affaire voulu. Maintenant il faut que je fasse un raz de cette cellule masquée à chaque 1er jour de chaque mois.
Voici ma deuxième macro avec comptage :
Citation : Sub Ajout_affaire_2() |
Marsh Posté le 09-03-2009 à 16:11:22
Je continue à filer mes trouvailles.
Pour la seconde macro, j'ai réussi à demander une remise à zéro de ma cellule de comptage à chaque changement de mois. Il suffit de placer la date dans une cellule et ensuite à chaque nouvelle affaire que je créé, cette cellule est comparée par rapport à la date du jour et ensuite il faut bien entendu réenregistrer la nouvelle date dans la cellule "date" => D1 dans mon cas
Citation : Sub Ajout_affaire_2() |
Maintenant je n'arrive toujours pas à faire des liens dans ma ma première macro : elle créée une nouvelle feuille (une fiche client) avec toutes les infos que je veux (inputbox) et ces dernières sont reprises sur la feuille "Base Clients" sur la dernière ligne vide disponible. A partir du nom du client (colonne A) de la feuille "Base Clients", je veux que ma macro génère aussi un lien vers la fiche correspondante venant d'être créée dans cette même macro.
Marsh Posté le 10-03-2009 à 15:40:15
ReplyMarsh Posté le 10-03-2009 à 15:40:49
86vomito33 a écrit : |
dans ton cas vu que ta zone correpond qu'a ue seule cellule tu peux mettre:
If Month(Range("F1" ).Value) <> Month(Date) Then
Worksheets("Base Clients" ).Range("D1" ) = 0
Range("F1" ).Value = Date
End If
Marsh Posté le 12-03-2009 à 11:40:55
Ok, merci, je me doutais qu'il y avait un moyen de faire plus simple vu qu'effectivement je ne met à 0 q'une seule cellule. C'est un code que j'avais trouvé sur un forum pour remmettre à 0 plusieurs cellules que je m'étais réadapté. Merci pour cette simplification
Néanmoins, mon problème reste de lier chaque nouvelle fiche client avec les cellules "nom du client" en colonne A) de la feuille "Base Clients". Au sein de la même macro, je créé la fiche client (la nouvelle feuille portant le nom du client => ma valeur d1 de l'InputBox) et je créé la ligne pour ce nouveau client sur la première ligne vide de ma feuille "Base Clients". Reste à lier les deux, sachant que je ne peux pas faire mon lien en indiquant le nom de la feuille dans la macro, genre "NOMDUCLIENT!A1", puisque le nom du client c'est ma valeur d1 de l'InpuBox... Je sais pas si je suis clair là....
Marsh Posté le 21-04-2009 à 12:20:17
J'essais de faire une gestion de stock de 2 magasins avec des produits qui peuvent venir s'ajouter ou etre supprimés. Sache que tout ce que t'a écris devrai me servir un peu
Vraiment génial ce forum
Marsh Posté le 23-02-2009 à 15:03:50
Bonjour,
Je débute en vba et pour mon employeur j'essaye de créer un fichier de gestion de clients avec excel 2007
Ma première feuille me permet de visualiser tous les clients (un par ligne) mais aussi d'ajouter de nouveau client.
J'ai donc créer un bouton lançant une macro créant une nouvelle ligne client ainsi qu'une nouvelle feuille que j'aimerai mettre au nom du client et avec déjà des cellules préremplies. Des InputBox viennent demander les informations dont on a besoin.
Mes soucis :
1) Mauvais affichage quand je colle ma copie de feuille modèle, les cellules ne prennent pas la même mise en forme du modèle.
2) Je n'arrive pas à renommer ma feuille à l'aide de l'InputBox "nom du client ?".
Mon code bancale :
Sub Nouvelle_fiche()
'
' Nouvelle_fiche Macro
'
'
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Modèle fiche Client" ).Select
Cells.Select
Selection.Copy
Sheets(Sheets.Count).Select
Cells.Select
ActiveSheet.Buttons.Add(2.25, 26.25, 87, 12).Select
ActiveSheet.Paste
ActiveWindow.Zoom = 62
Dim d1, d2, d3, d4, d5, d6, d7, d8
d1 = InputBox("Nom du Client ?" )
d2 = InputBox("Code postale ?" )
d3 = InputBox("Ville ?" )
d4 = InputBox("N° et Rue du Client ?" )
d5 = InputBox("Nom du Contact ?" )
d6 = InputBox("N° de Tél ?" )
d7 = InputBox("N° de Fax ?" )
d8 = InputBox("adresse email ?" )
Range("A1" ) = d1
Range("C1" ) = d2
Range("D1" ) = d3
Range("B1" ) = d4
Range("E1" ) = d5
Range("F1" ) = d6
Range("G1" ) = d7
Range("H1" ) = d8
End Sub
Deuxième macro et encore des soucis... celle-ci se situe dans mes fiches clients, elle me permet de créer des n° d'affaire encore une fois à partir d'InputBox. Là ça marche, sauf :
1) comment indiquer de remplir la dernière ligne vide
2) J'aimerai intégrer un compteur dans mon numéro d'affaire automatique entre les initiales et la date de type 00, 01, 02,... au fur et à mesure qu'on ajoute des affaires. De plus dès que le mois est terminé, repartir à 0 sur ce compteur.
Mon code moins bancale mais incomplet :
Sub Ajout_affaire()
Dim d1, d2, d3, d4
d1 = InputBox("Vos initiales ? (en majuscules)" )
d2 = InputBox("Section analytique ? (ex : 01, 06, 15)" )
d3 = InputBox("Objet du devis ou de la commande ?" )
d4 = InputBox("N° de commande Client ? (s'il y a)" )
Range("A6" ) = d1
Range("C6" ) = d2
Range("D6" ) = d3
Range("E6" ) = d4
Range("B6" ) = d2 + ("/" ) + d1 + ("/" ) + Format(Date, "mm/yy" )
ActiveCell.Select
End Sub
Message édité par Cedric apf le 23-02-2009 à 15:08:16