Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

RESOLU ///TRANSFERT de formulaire vers onglet historique

  • Initiateur de la discussion Initiateur de la discussion docweed
  • Date de début Date de début

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 !

docweed

XLDnaute Nouveau
Bonjour a tous,

Voila mon problème :

Dans le fichier joint je cherche a créer un "historique de formulaire" compilé.
J'ai trouvé la macro pour copier les données du tableau (A17:J27) vers l'onglet historique dans les colonnes (F:L)
En revanche je ne trouve pas de solution pour intégrer dans les colonnes (A:E) les valeurs correspondante du formulaire cellules ( I6;J6;A9;A11;G11)

Il faut que ces cellules soient copiées a chaque fois que la ligne n'est pas vide. Le but étant d'avoir un onglet historique contenant toutes les infos du formulaire compilées...

C'est MODULE 3 qui est concerné...

SOS please !! 🙂
 

Pièces jointes

Dernière édition:
Bonjour

Ci dessous un code à tester

Sub recordattente()
Dim Orig As Variant, dlOrig As Long
Dim Dest As Variant, dlDest As Long
Dim Cellule1 As Range, Col1 As String
' recordcommande
Col1 = "A"
Orig = VBA.Array("I6", "J6", "A9", "A11", "G11")' cellule origine attention à l'ordre a modifier si on change les cellules
Dest = VBA.Array("A", "B", "C", "D", "E")' destination

With Sheets("Historique 1")
dlDest = .Range("A" & .Rows.Count).End(xlUp).Row + 1
If dlDest < 4 Then dlDest = 4

For Each Cellule1 In Sheets("Commande").Range(Col1 & "17:" & Col1 & 29)
If Cellule1 <> "" Then

For i = 0 To UBound(Orig)
If Sheets("Commande").Range(Orig(i)) <> "" Then
.Range(Dest(i) & dlDest) = Sheets("Commande").Range(Orig(i))
End If
Next i

.Range("f" & dlDest) = Cellule1
.Range("G" & dlDest) = Cellule1.Offset(0, 2)
.Range("H" & dlDest) = Cellule1.Offset(0, 4)
.Range("I" & dlDest) = Cellule1.Offset(0, 6)
'.Range("J" & dlDest) = Cellule1.Offset(0, 1)
'.Range("G" & dlDest) = Cellule1.Offset(0, 1)
'.Range("G" & dlDest) = Cellule1.Offset(0, 1)

Else
Exit For
End If
dlDest = dlDest + 1
Next Cellule1

End With
End Sub
 
J'ai dû rectifier deux trois truc que j'ai deviné je ne sais comment parceque le code me décalait des infos et me créait des lignes supplementaires ... MAIS CA FONCTIONNE SUPER!!! Un million de Merci!!
T'es un Heros pour moi Jp14 ... Je suis bluffé!
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…