XL 2016 Remplissage automatique info

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

  • Exemple fiche.xlsx
    13.4 KB · Affichages: 5

JM27

XLDnaute Barbatruc
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

  • Exemple fiche.xlsm
    19.3 KB · Affichages: 4

Ethlios

XLDnaute Junior
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 ^^'
 

JM27

XLDnaute Barbatruc
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
 

JM27

XLDnaute Barbatruc
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:

Ethlios

XLDnaute Junior
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 ?
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
704
Réponses
4
Affichages
419

Statistiques des forums

Discussions
314 655
Messages
2 111 605
Membres
111 217
dernier inscrit
aladinkabeya2