XL 2016 Remplissage automatique info

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 !

Ethlios

XLDnaute Junior
Bonjour à tous,

Je cherche à réutiliser cette fonction que j'utilise pour remplir mon fichier de suivi, mais dans une version différente, afin de remplir automatiquement une fiche pour retranscrire les infos de la fiche 1 sur la fiche 2. Quand j'utilise cette fonction pour remplir ma fiche, je reçois un message d'erreur d'exécution "1004" erreur défini par l'application ou par objet. Que dois-je changer pour réutiliser la fonction correctement ?

J'ai ajouté un fichier pour illustrer mon système de fiche 1, fiche 2


Fonction utilisée sur mon fichier de suivi :

Sub Validation()

Dim dl As Long
dl = Sheets("Fiche suivi").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Fiche suivi").Range("A" & dl).Value = Range("B4").Value
Sheets("Fiche suivi").Range("B" & dl).Value = Range("B6").Value
Sheets("Fiche suivi").Range("C" & dl).Value = Range("B5").Value
Sheets("Fiche suivi").Range("D" & dl).Value = Range("B8").Value
....

End Sub

Merci d'avance

Ethlios
 

Pièces jointes

mettre dans un module standard
VB:
Sub Validation()
    Dim dl As Long
        dl = Sheets("Fiche 2").Range("B" & Rows.Count).End(xlUp).Row + 1
        Sheets("Fiche 2").Range("B" & dl).Value = Sheets("Fiche 1").Range("C1").Value
        Sheets("Fiche 2").Range("B" & dl + 1).Value = Sheets("Fiche 1").Range("C2").Value
        Sheets("Fiche 2").Range("B" & dl + 2).Value = Sheets("Fiche 1").Range("C3").Value
        Sheets("Fiche 2").Range("B" & dl + 3).Value = Sheets("Fiche 1").Range("C4").Value
        Sheets("Fiche 2").Range("B" & dl + 4).Value = Sheets("Fiche 1").Range("C5").Value
End Sub

les données (en ligne) s'ajouteront les unes après les autres
 

Pièces jointes

mettre dans un module standard
VB:
Sub Validation()
    Dim dl As Long
        dl = Sheets("Fiche 2").Range("B" & Rows.Count).End(xlUp).Row + 1
        Sheets("Fiche 2").Range("B" & dl).Value = Sheets("Fiche 1").Range("C1").Value
        Sheets("Fiche 2").Range("B" & dl + 1).Value = Sheets("Fiche 1").Range("C2").Value
        Sheets("Fiche 2").Range("B" & dl + 2).Value = Sheets("Fiche 1").Range("C3").Value
        Sheets("Fiche 2").Range("B" & dl + 3).Value = Sheets("Fiche 1").Range("C4").Value
        Sheets("Fiche 2").Range("B" & dl + 4).Value = Sheets("Fiche 1").Range("C5").Value
End Sub

les données (en ligne) s'ajouteront les unes après les autres
Justement, je ne veux pas qu'il s'ajoute les unes après les autres, dans l'idée, je veux rentrer les infos dans la fiche 1, redirigé les infos vers la fiche 2 et l'extraire la fiche 2 en pdf par exemple puis rechanger les données d'entrée de la fiche 1 et recommencer. Je ne sais pas si c'est plus clair comme explication ^^'
 
tout simplement
VB:
Sub Validation()
        Sheets("Fiche 2").Range("B1").Value = Sheets("Fiche 1").Range("C1").Value
        Sheets("Fiche 2").Range("B2").Value = Sheets("Fiche 1").Range("C2").Value
        Sheets("Fiche 2").Range("B3").Value = Sheets("Fiche 1").Range("C3").Value
        Sheets("Fiche 2").Range("B4").Value = Sheets("Fiche 1").Range("C4").Value
        Sheets("Fiche 2").Range("B5").Value = Sheets("Fiche 1").Range("C5").Value
End Sub
 
L'enregistreur de macro permet d'enregistrer tout les actions que tu réalises , les unes après les autres.
en fait cela te crées une macro
Voila ce que cela donne avec l'enregistreur de macro
VB:
Sub Macro1()
    
 Sheets("Fiche 1").Select
    Range("C1:C5").Select
    Selection.Copy
    Sheets("Fiche 2").Select
    Range("B1").Select
    ActiveSheet.Paste
End Sub
cela va te créer un module standard avec la macro
évidemment le code n'est pas optimisé mais c'est un début
 

Pièces jointes

  • essai1.gif
    essai1.gif
    954.3 KB · Affichages: 19
Dernière édition:
L'enregistreur de macro permet d'enregistrer tout les actions que tu réalises , les unes après les autres.
en fait cela te crées une macro
Voila ce que cela donne avec l'enregistreur de macro
VB:
Sub Macro1()
   
 Sheets("Fiche 1").Select
    Range("C1:C5").Select
    Selection.Copy
    Sheets("Fiche 2").Select
    Range("B1").Select
    ActiveSheet.Paste
End Sub
cela va te créer un module standard avec la macro
évidemment le code n'est pas optimisé mais c'est un début
Bonjour !

Désolé pour le retard, je n'avais pas vu votre message !! La fonction est géniale, comment ajouter cette fonction sur Excel ?
 
- 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

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
773
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
482
Réponses
9
Affichages
950
Retour