XL 2013 Incrementation de lignes sur un tablau

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

  • PI 230 test.xls
    153.5 KB · Affichages: 38

Bebere

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

francis38

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

Lone-wolf

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

francis38

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

Bebere

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

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 077
Membres
103 111
dernier inscrit
Eric68350