VBA : Enregistrement de données à suivre dans une base [Résolu/Fermé]

Signaler
-
 xi9800 -
Bonjour,

Ayant cherché, mais n'ayant pas trouvé de discussion similaire (ou alors je mis prends mal), je poste mon soucis.

Je suis actuellement entrain de créer un formulaire avec un bouton d'enregistrement qui permet aux données d'être sauvegarder dans une base.
Pour créer ce formulaire, je me suis basé sur le tutorial de ce site : http://www.01net.com/editorial/273366/construisez-une-base-de-donnees-avec-excel/

Le seul soucis rencontré : lorsque j'enregistre mes données, celles-ci ne se colle pas à suivre dans la base. Les données se recolle les unes sur les autres dans la ligne 2.

Voici le code :

Sub saisie()
'Atteindre le formulaire et mémoriser les données
    Sheets("Formulaire").Select
    Range("B1:B6").Select
    Selection.Copy
'Test pour déterminer la ligne où coller les données
    Sheets("Base").Select
    valeursA2 = Range("A2").Value
    If valeurA2 = "" Then
    Range("A2").Select
    Else
    Range("A1").Select
    Selection.End(xlDown).Select
    ligne_active_base = ActiveCell.Row
    Range("A" & ligne_active_base + 1).Select
    End If
'Mémoriser le n° de la ligne où coller les données
    lignes_active_base = ActiveCell.Row
'Collage avec transposition
    Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=True
'Rendre vierge le formulaire
    Sheets("Formulaire").Select
    Range("B1:B6").Select
    Selection.ClearContents
    Range("B1").Select
'Retourner dans le tableau
    Sheets("Base").Select
    Range("A1").Select
End Sub


En vous remerciant d'avance pour vos réponses.

2 réponses

Messages postés
15369
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
13 octobre 2020
1 375
Bonjour,

Un peu plus court,

Sub saisie()
  With Sheets("Base")
    'premiere ligne vide colonne A (A1: titre colonne)
    plva = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & plva & ":F" & plva) = Application.Transpose(Sheets("Formulaire").Range("B1:B6"))
  End With
  'Rendre vierge le formulaire
  Sheets("Formulaire").Range("B1:B6").ClearContents
End Sub
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Merci, ce code est parfait et surtout plus court.