Microsoft 365 programme VBA pour "importer" les valeurs de certaines cellules d'une autre feuille appartenant à une ligne que j'identifie par un n°

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

arnomorize

XLDnaute Nouveau
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.

Je vous remercie de votre aide 🙂
 

Pièces jointes

Solution
il faut renommer la table de la feuille DPAE
en t_DPAE (puisque c'est le nom utilisé dans le code

un peu de lecture ici pour comprendre
Hello

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?
 
Hello

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.
 

Pièces jointes

il faut renommer la table de la feuille DPAE
en t_DPAE (puisque c'est le nom utilisé dans le code

un peu de lecture ici pour comprendre
 
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 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour