Alimenter un tableau sans effacer les lignes du dessus ?

khadd

XLDnaute Nouveau
Bonjour à tous et à toutes,
Je viens vers vous car j’ai un petit problème :confused:. Mon utilisation d’Excel se limite la plupart du temps aux formules. Mais, j’essaie une nouvelle chose et je bloque, pourriez-vous m’aider ?
Voilà, il faut que je remplisse un tableau dans lequel sont indiquées les données suivantes : Nom, prénom et adresses (c’est plus que cela en réalité, mais bon c’est pour ne pas trop brouiller le message).
Pour ce faire je rempli un tableau moi-même avec une seule ligne et j’appuie un bouton pour aller alimenter un tableau plus grand, qui recense toutes les entrées de la journée et ensuite enregistre le document. Si pour la première ligne tout va bien, dès que je j’appuie sur le bouton pour une deuxième entrée, bien entendu la première ligne s’efface. Mais, moi j’aimerais que le tableau se remplisse au fur et à mesure et enfin à chaque entrée que le document s’enregistre.
Tableau de saisie :
Nom Prénom Adresse
CCCCCC CCCC CCCC

Tableau de recensement :
Nom Prénom Adresse
AAAAA AAAA AAAA
BBBBB BBBB BBBB
CCCCC CCCC CCCC

Merci d'avance :eek:
 

JHA

XLDnaute Barbatruc
Re : Alimenter un tableau sans effacer les lignes du dessus ?

Bonjour à tous,

Sans fichier, difficile de te donner une bonne piste mais as tu essayé le formulaire d'excel?

Image formulaire.jpg

JHA
 

job75

XLDnaute Barbatruc
Re : Alimenter un tableau sans effacer les lignes du dessus ?

Bonjour khadd, JHA,

Pour ce faire je rempli un tableau moi-même avec une seule ligne et j’appuie un bouton pour aller alimenter un tableau plus grand

Alors voici une macro à adapter et à affecter au bouton :

Code:
Sub Transfert()
Dim DebTab1 As Range, DebTab2 As Range
Set DebTab1 = Feuil1.[A1] '1ère cellule de titres, à adapter
Set DebTab2 = Feuil1.[A4] 'si même feuille, 1ère cellule de titres, à adapter
If DebTab1(2) = "" Then
  MsgBox "Entrez le nom !", 48
Else
  With DebTab1.CurrentRegion.Rows(2)
    .Copy DebTab2(DebTab2.CurrentRegion.Rows.Count + 1)
    .ClearContents
  End With
End If
DebTab1(2).Select
End Sub
A+
 

khadd

XLDnaute Nouveau
Re : Alimenter un tableau sans effacer les lignes du dessus ?

Salut JHA et merci pour ta reponse très rapide. Je te mets en PJ un talbeau qui résume mes attentes.
merci.
 

Pièces jointes

  • -------exemple ED --------.xlsm
    40 KB · Affichages: 38
  • -------exemple ED --------.xlsm
    40 KB · Affichages: 41

JHA

XLDnaute Barbatruc
Re : Alimenter un tableau sans effacer les lignes du dessus ?

Re bonjour,

Avec la méthode du formulaire, tu n'as pas besoin de VBA.
Sans titre.jpg

Pour ouvrir le formulaire et l'avoir toujours en accès, en haut à gauche du nom du document, tu cliques sur la petite flèche du menu déroulant (Personnaliser la barre d'outils d'Accès rapide) puis tu choisis "autres commandes" puis toutes les commandes et tu choisis l'icone formulaire.
Avant de cliquer sur l'icone formulaire au dessus du ruban, tu sélectionnes la plage "B4:G5" puis appel du formulaire et tu rentres tes données.

JHA
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    95.5 KB · Affichages: 26
  • -------exemple ED --------.xlsm
    162.7 KB · Affichages: 33
  • -------exemple ED --------.xlsm
    162.7 KB · Affichages: 32

job75

XLDnaute Barbatruc
Re : Alimenter un tableau sans effacer les lignes du dessus ?

Re,

Voyez le fichier joint et ces 2 macros :

Code:
Private Sub Ajouter_Click()
Dim source As Range, deb As Range
Set source = [B12:F12] 'plage à copier
Set deb = [C19] '1ère cellule de titres
If source(1) = "" Then
  MsgBox "Entrez la mission !", 48
Else
  With deb(deb.CurrentRegion.Rows.Count + 1)
    .Resize(, source.Count).Value = source.Value
    .Offset(, -1) = .Row - deb.Row 'numéro
    .Offset(, -1).Resize(, 7).Borders.Weight = xlThin
    .Offset(, 2).Borders(xlEdgeRight).LineStyle = xlNone
  End With
End If
source.ClearContents
source(1).Select
ThisWorkbook.Save 'enregistrement
End Sub

Private Sub RAZ_Click()
Dim deb As Range
Set deb = [C19] '1ère cellule de titres
With deb(2, 0).Resize(Rows.Count - deb.Row, 7)
  .ClearContents
  .Borders.LineStyle = xlNone
End With
End Sub
Edit : j'avais oublié d'effacer la bordure placée entre les 2 cellules du Nom.

A+
 

Pièces jointes

  • -------exemple ED ---------(1).xlsm
    41.8 KB · Affichages: 41
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 969
Membres
103 993
dernier inscrit
Essens