XL 2013 Incrementation de lignes sur un tablau

  • Initiateur de la discussion Initiateur de la discussion francis38
  • 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 !

francis38

XLDnaute Nouveau
Bonjour à tous,

je recherche de l'aide pour savoir comment incrémenter un tableau en partant de champs présents dans un formulaire. Les champs sont sélectionnés grâce à des listes déroulantes. Le tableau servant d'historique doit récupérer chaque champs présents dans le formulaire.
L'action se fait grâce à un bouton de commande présent sur le formulaire.
A chaque click du bouton, une ligne s'incrémente dans le tableau.
j'ai créé une Macro par enregistrement mais je n'ai pas comment faire la boucle d'incrémentation .

je ne sais pas si c'est assez clair pour vous mais auquel cas, n'hésitez pas à me solliciter.

bonne journée
Francis
 

Pièces jointes

bonjour
Françis bienvenue
voilà un code à compléter
Code:
Sub ARCHIVAGE() 
'suggestion mettre les enseignes de feuille NCF dans feuille suivi
Dim Ws As Worksheet, L As Long, Ligne(1 To 1, 1 To 23)
Set Ws = Sheets("SUIVI DES NCF")
Ligne(1, 1) = Range("F4") 'date
Ligne(1, 2) = Range("E2") 'nc
Ligne(1, 3) = Range("B8") 'fourn
Ligne(1, 4) = Range("B9")
Ligne(1, 5) = Range("B11")
Ligne(1, 6) = Range("B22") 'art
Ligne(1, 7) = Range("B23")
Ligne(1, 8) = Range("B24")
'après = mettre les bonnes cellules
Ligne(1, 9) = Range("B8") 'problème
Ligne(1, 10) = Range("B9")
Ligne(1, 11) = Range("B11")
Ligne(1, 12) = Range("E2")
Ligne(1, 13) = Range("B8")
Ligne(1, 14) = Range("B9")
Ligne(1, 15) = Range("B11")
Ligne(1, 16) = Range("E2")
Ligne(1, 17) = Range("B8")
Ligne(1, 18) = Range("B9")
Ligne(1, 19) = Range("B11")
Ligne(1, 20) = Range("E2")
Ligne(1, 21) = Range("B8")
Ligne(1, 22) = Range("B9")
Ligne(1, 23) = Range("B11")

L = Ws.Range("A65000").End(xlUp).Row + 1
    Ws.Range("A" & L).Resize(UBound(Ligne, 1), UBound(Ligne, 2)) = Ligne
    End Sub
 
Merci Bebere pour ton aide...j'ai donc copier les lignes de code mais ça plante sur le Resize . As tu une idée de ce que j'ai mal fait?
upload_2018-5-25_7-52-49.png
 
Bonjour Bebere, francis 🙂

Je ne sais pas si j'ai bien compris. Un test comme ceci

VB:
Public Sub Màj()
Dim Ws As Worksheet, WsN As Worksheet

Set Ws = Sheets("SUIVI DES NCF"): Set WsN = Sheets("NCF (FR)")
With Ws
lig = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lig, "A") = WsN.Range("f4")
.Cells(lig, "B") = WsN.Range("e2")
.Cells(lig, "D") = WsN.Range("b8")
.Cells(lig, "F") = WsN.Range("b23")
.Cells(lig, "I") = WsN.Range("a34")
End With
End Sub

EDIT: pour test j'ai supprimer les MFC et enlevé les celulles fusionnées. En image

report.gif


Ce qui donne les noms des colonnes à la suite (.Cells(lig, "A") - .Cells(lig, "B") - .Cells(lig, "C") - .Cells(lig, "D") etc.
 
Dernière édition:
bonjour Lone-wolf
dois je rajouter tes lignes de codes à la place de ce qu'à proposer Berbere sur la fin de la macro : L=Ws. Range("A65OOO...ETC ETC ???
j'ai testé et cela ne bug plus ce qui est une bonne chose mais rien ne se copie sur l'onglet "SUIVI DES NCF"...dur dur!!
merci encore
Francis
 
bonjour Francis,Lone-wolf
non ce sont 2 codes distincts
le code fonctionne içi
comme dit plus haut,il faut compléter à partir de ligne(1,9)='changer range("B8") et lasuite
je te conseille de mettre les mêmes entêtes dans les 2 feuilles
et éviter les cellules fusionnées(d'accord avec Lone-wolf,clin d'oeil)
tu pourras ainsi utiliser les outils d'excel:filtre,tcd,etc
consultes l'aide pour resize
 
- 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