Je sais, c'est un titre un peu long mais je n'arrive pas à synthétiser davantage...
Dans une feuille (formulaire nouvel objet), j'ai créé un formulaire qui va alimenter automatiquement un tableau d'une autre feuille (saison), en insérant une ligne, la remplissant des valeurs du formulaire, et la faisant débuter par un n° de ligne qui s'incrémente à chaque nouvelle ligne créée.
Ainsi, chaque nouvelle entrée est précédée par un n°
J'ai créé un autre formulaire dans une autre feuille (formulaire nouvelle dpae) pour traiter certaines informations du tableau
Pouvez vous m'aider à atteindre cet objectif :
Je voudrais saisir un n° dans une cellule "d'appel" de ce nouveau formulaire, afin de faire remonter certaines des valeurs de la ligne correspondante dans le nouveau formulaire.
Sachant qu'à chaque nouvelle entrée, les lignes se déplacent vers le bas, elles perdent donc leur position physique dans le tableau.
For a data analyst, Excel Tables are a necessity! They are the most efficient way to organize your raw data and refer to data that contracts or expands on a regular basis. Likewise, Excel tables can be extremely useful in combination with VBA.
pour le bouton "Maison", il suffit de le mettre dans le formulaire==> il sera recopié automatiquement
pour le nom avec la date, il suffit de l'ajouter dans le NomFile
VB:
Sub SaveDPAE()
Dim Chemin As String
Chemin = "\\mairie-talant.lan\partages\donnees\LECRIN\Dossiers PARTAGES\INTERMITTENTS ET LOCATIONS\EMBAUCHE INTERMITTENTS" 'à modifier
Set WsSource = ActiveSheet
With WsSource 'avec la feuille source
NomFile = Format(Now, "dd_mm_yyyy") & "_" & Left(.Range("D5"), 15) & "_DPAE" 'on récupère le nom et on ajoute _DPAE pour faire le nom de fichier
.Copy after:=Sheets(Sheets.Count) 'on copie la feuille dans le classeur
With ActiveSheet
.Name = NomFile 'on renomme la feuille
.Range("B5:F5") = .Range("B5:F5").Value ' on remplace les formules par leur résultat
.Range("D9:K17") = .Range("D9:K17").Value
.Shapes("Bouton 1").Delete 'on supprime le bouton
.Copy 'on copie la feuille dans un nouveau classeur
End With
ChDir Chemin
ActiveWorkbook.SaveAs Filename:=Chemin & "\" & NomFile & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'on enregistre le nouveau classeur
ActiveWindow.Close 'on le ferme
Application.DisplayAlerts = False 'on désactive les alarmes
ActiveWorkbook.Sheets(NomFile).Delete 'on supprime la feuille _DPAE (si tu souhaites la garder dans le classeur d'origine, tu mets la ligne en commentaire)
Application.DisplayAlerts = True
End With
End Sub
attention.. le nom de l'onglet ne peut pas excéder 31 caractères..
NomFile = Format(Now, "dd_mm_yyyy") & "_" & Left(.Range("D5"), 15) & "_DPAE"
avec les préfixes "date et suffixe _DPAE, il reste 15 caractères pour le nom
pour le dernier point.. la feuille budget est écrasée à chaque nouvelle DPAE?
pour le bouton "Maison", il suffit de le mettre dans le formulaire==> il sera recopié automatiquement
pour le nom avec la date, il suffit de l'ajouter dans le NomFile
VB:
Sub SaveDPAE()
Dim Chemin As String
Chemin = "\\mairie-talant.lan\partages\donnees\LECRIN\Dossiers PARTAGES\INTERMITTENTS ET LOCATIONS\EMBAUCHE INTERMITTENTS" 'à modifier
Set WsSource = ActiveSheet
With WsSource 'avec la feuille source
NomFile = Format(Now, "dd_mm_yyyy") & "_" & Left(.Range("D5"), 15) & "_DPAE" 'on récupère le nom et on ajoute _DPAE pour faire le nom de fichier
.Copy after:=Sheets(Sheets.Count) 'on copie la feuille dans le classeur
With ActiveSheet
.Name = NomFile 'on renomme la feuille
.Range("B5:F5") = .Range("B5:F5").Value ' on remplace les formules par leur résultat
.Range("D9:K17") = .Range("D9:K17").Value
.Shapes("Bouton 1").Delete 'on supprime le bouton
.Copy 'on copie la feuille dans un nouveau classeur
End With
ChDir Chemin
ActiveWorkbook.SaveAs Filename:=Chemin & "\" & NomFile & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'on enregistre le nouveau classeur
ActiveWindow.Close 'on le ferme
Application.DisplayAlerts = False 'on désactive les alarmes
ActiveWorkbook.Sheets(NomFile).Delete 'on supprime la feuille _DPAE (si tu souhaites la garder dans le classeur d'origine, tu mets la ligne en commentaire)
Application.DisplayAlerts = True
End With
End Sub
attention.. le nom de l'onglet ne peut pas excéder 31 caractères..
NomFile = Format(Now, "dd_mm_yyyy") & "_" & Left(.Range("D5"), 15) & "_DPAE"
avec les préfixes "date et suffixe _DPAE, il reste 15 caractères pour le nom
pour le dernier point.. la feuille budget est écrasée à chaque nouvelle DPAE?
Mince, je n'ai pas été clair, ce n'est pas la date d'aujourd'hui que je veux ajouter au nom de fichier, c'est la date de l'objet (cellule F5 de la feuille FormulaireNouvelleDpae)
Concernant la feuille budget, ton tableau fera le boulot à la place des miens et j'ajoute en dernière colonne le budget restant à chaque ligne.
For a data analyst, Excel Tables are a necessity! They are the most efficient way to organize your raw data and refer to data that contracts or expands on a regular basis. Likewise, Excel tables can be extremely useful in combination with VBA.
vgendron,
Je te remercie infiniment pour ta patience, je n'imagine pas le temps qu'il faut pour acquérir toutes ces connaissances, je suis très impressionné.
Tu m'as réalisé un superbe outil qui dépasse ce que j'espérais.
Je vais essayer de trouver le temps de lire les articles que tu m'as envoyés.
Au plaisir de te recroiser