Bonjour à tous,
Dans le cadre de mon travail, je suis en train de réaliser un gros logiciel de suivi d'opérations.
J'ai réalisé actuellement une grande partie de l'interface et des codes sous VBA.
Je viens à vous parce que malgré mes nombreuses recherches sur internet, les forums et devant VisualBasic, je ne trouve pas la réponse à quelques questions.
Je vous explique rapidement.
Tout d'abord, le logiciel étant à caractère très professionnel, j'ai dû supprimer de nombreuses choses, l'essentiel reste là pour m'aider.
Alors, sur ma première feuille ("Nouveau"), on entre les données demandées. Ces dernières seront automatiquement listées ligne 400 de ma feuille "Liste des opérations" mais une macro les remettra en ordre chronologique en ligne 4.
De plus, la feuille "Modèle" sera dupliquée et renommée selon le numéro entré sur la feuille "Nouveau", cellule "C5".
C'est justement là mon soucis, j'aimerai que la macro créé un lien hypertexte sur ma feuille "Liste des opérations" portant le nom du numéro d'opération rentré sur la feuille "Nouveau" et faisant référence à la feuille créée portant ce même nom.
Je ne sais pas si je suis bien clair. Un exemple:
J'entre le numéro 122 dans ma première feuille, je clique sur "créer", j'aurai alors une nouvelle feuille "122" de créée et une nouvelle ligne dans "Liste des opérations".
J'aimerai du coup que dans "Liste des opérations", j'ai un lien hypertexte, qui quand je clique sur le numéro "122", ce dernier m'envoie à la feuille "122".
Mon problème ? Tout simplement que vu que je ne sais pas du tout quel numéro je peux entrer, je fonctionne uniquement avec des variables, mais les variables sont effacées à la fin.
Auriez-vous une solution ?
Voici mon code de création:
Je vous poste déjà cette question là avant de vous demander de l'aide pour la suite (que je continue toujours à chercher d'ailleurs).
Un grand merci d'avance pour votre aide et n'hésitez pas pour avoir de plus amples informations
Dans le cadre de mon travail, je suis en train de réaliser un gros logiciel de suivi d'opérations.
J'ai réalisé actuellement une grande partie de l'interface et des codes sous VBA.
Je viens à vous parce que malgré mes nombreuses recherches sur internet, les forums et devant VisualBasic, je ne trouve pas la réponse à quelques questions.
Je vous explique rapidement.
Tout d'abord, le logiciel étant à caractère très professionnel, j'ai dû supprimer de nombreuses choses, l'essentiel reste là pour m'aider.
Alors, sur ma première feuille ("Nouveau"), on entre les données demandées. Ces dernières seront automatiquement listées ligne 400 de ma feuille "Liste des opérations" mais une macro les remettra en ordre chronologique en ligne 4.
De plus, la feuille "Modèle" sera dupliquée et renommée selon le numéro entré sur la feuille "Nouveau", cellule "C5".
C'est justement là mon soucis, j'aimerai que la macro créé un lien hypertexte sur ma feuille "Liste des opérations" portant le nom du numéro d'opération rentré sur la feuille "Nouveau" et faisant référence à la feuille créée portant ce même nom.
Je ne sais pas si je suis bien clair. Un exemple:
J'entre le numéro 122 dans ma première feuille, je clique sur "créer", j'aurai alors une nouvelle feuille "122" de créée et une nouvelle ligne dans "Liste des opérations".
J'aimerai du coup que dans "Liste des opérations", j'ai un lien hypertexte, qui quand je clique sur le numéro "122", ce dernier m'envoie à la feuille "122".
Mon problème ? Tout simplement que vu que je ne sais pas du tout quel numéro je peux entrer, je fonctionne uniquement avec des variables, mais les variables sont effacées à la fin.
Auriez-vous une solution ?
Voici mon code de création:
Code:
Sub nouveau()
'
' nouveau Macro
'
'
nom = Sheets("Nouveau").Range("C5:D5")
année = Sheets("Nouveau").Range("C14:D14")
opération = Sheets("Nouveau").Range("C5:D5")
commune = Sheets("Nouveau").Range("C6:E6")
loca = Sheets("Nouveau").Range("C7:E7")
secteur = Sheets("Nouveau").Range("C8:E8")
agent = Sheets("Nouveau").Range("C9:D9")
descri = Sheets("Nouveau").Range("C10:H12")
cout = Sheets("Nouveau").Range("C13:D13")
Sheets("Liste des opérations").Select
Range("B400").Select
ActiveCell.FormulaR1C1 = commune
Range("C400").Select
ActiveCell.FormulaR1C1 = secteur
Range("D400").Select
ActiveCell.FormulaR1C1 = loca
Range("E400").Select
ActiveCell.FormulaR1C1 = descri
Range("F400").Select
ActiveCell.FormulaR1C1 = année
Range("G400").Select
ActiveCell.FormulaR1C1 = cout
Range("K400").Select
ActiveCell.FormulaR1C1 = agent
Range("A400").Select
ActiveCell.FormulaR1C1 = opération
Range("A4:A399").Select
Selection.Font.Bold = True
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("B4:B399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("C4:C399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("D4:D399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("E4:E399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Rows("4:399").EntireRow.AutoFit
Range("F4:F399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("G4:G399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("H4:H399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("I4:I399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("J4:J399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("K4:K399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("L4:L399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("M4:M399").Select
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Sheets("Modèle").Select
Sheets("Modèle").Copy Before:=Sheets(2)
Sheets("Modèle (2)").Select
ActiveSheet.Name = Sheets("Nouveau").Range("C5")
Range("J19").Select
Range("E6").Select
ActiveCell.FormulaR1C1 = année
Range("D7:G7").Select
ActiveCell.FormulaR1C1 = opération
Range("D9:G9").Select
ActiveCell.FormulaR1C1 = commune
Range("D10:G10").Select
ActiveCell.FormulaR1C1 = secteur
Range("D11:G11").Select
ActiveCell.FormulaR1C1 = loca
Range("D13:G13").Select
ActiveCell.FormulaR1C1 = agent
Range("D15:G15").Select
ActiveCell.FormulaR1C1 = descri
Range("D18:G18").Select
ActiveCell.FormulaR1C1 = cout
Range("D19:G19").Select
Sheets("Nouveau").Select
Range("C14:D14").Select
Selection.ClearContents
Range("C13:D13").Select
Selection.ClearContents
Range("C10:H12").Select
Selection.ClearContents
Range("C9:D9").Select
Selection.ClearContents
Range("C8:E8").Select
Selection.ClearContents
Range("C7:E7").Select
Selection.ClearContents
Range("C6:E6").Select
Selection.ClearContents
Range("C5:D5").Select
Selection.ClearContents
End Sub
Je vous poste déjà cette question là avant de vous demander de l'aide pour la suite (que je continue toujours à chercher d'ailleurs).
Un grand merci d'avance pour votre aide et n'hésitez pas pour avoir de plus amples informations
Pièces jointes
Dernière édition: