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: