Comment alimenter une base (transfert de données d'un onglet vers une base) via macro

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

S

Sabrina_95

Guest
Bonsoir à tous,

j'aurais besoin de conseils... Je vous explique mon problème:
j'ai un fichier excel: onglet1: Base; onglet2: questionnaire.
Afin de dépouiller le questionnaire, pour chaque personne interrogée, j'insère les réponses dans l'onglet2. Et à chaque clique sur un bouton, je souhaite que les données soient transférées vers la base. Ainsi, à chaque fois qu'une personne est interrogée, je souhaite que les données s'insère dans la ligne de la base située en-dessous de la ligne correspondant à la personne précédente interrogée.
J'espère avoir été claire, si ce n'est pas le cas, faites le moi savoir.

Merci beaucoup de me répondre

PS: je veux que pour un questionnaire rempli, l'action du bouton ne puisse agir qu'une seule fois. C'est à dire, si par mégarde j'appuie 2 fois sur le bouton, je ne veux pas que ça crée 2 lignes identiques dans la base.
 
Re : Comment alimenter une base (transfert de données d'un onglet vers une base) via

Bonsoir Sabrina,

Sans voir de fichier, le meilleur conseil que je puisse te donner est de consulter le forum en faisant des recherches ou en regardant dans les discussions similaires en bas de cette page, ce type de sujet a été traité de nombreuses fois.
Ensuite, si malgré tout tu bloques reviens avec un extrait de ton fichier et ton début de travail, tu trouveras toujours quelqu'un pour t'aider 🙂

Bonne soirée,

mth
 
Re : Comment alimenter une base (transfert de données d'un onglet vers une base) via

Bonjour,

voici-ci ci-joint un exemple de fichier.
En cliquant sur un bouton, je souhaite transférer ce qui est présent dans l'onglet formulaire vers la base. Et ceci, à chaque fois qu'un nouveau questionnaire est complété.

Merci
 

Pièces jointes

Re : Comment alimenter une base (transfert de données d'un onglet vers une base) via

J'ai pu voir des discussions à ce sujet mais en général, il s'agit de transfert d'un tableau vers un autre tableau.
merci
 
Re : Comment alimenter une base (transfert de données d'un onglet vers une base) via

Bonjour 🙂

Un petit essai avec ton fichier en PJ,

Dans le code de la feuille Formulaire, une macro pour choisir la note avec un double clic:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("A12:I12").SpecialCells(xlCellTypeSameValidation)) Is Nothing Then
        Cancel = True
        With Target
            .Value = IIf(Len(.Value), "", "x")
        End With
    End If
End Sub

Puis le code pour alimenter la base affecté au bouton "Valider":
Code:
Sub valider()
Dim Produit As String, Age As String, Categorie As String, prenom As String, note As String, c As Variant
Dim lig As Long
With Sheets("Formulaire")
    Produit = .Range("B1")
    Age = .Range("C3")
    Categorie = .Range("H3")
    prenom = .Range("E6")
    With .Range("A12:I12")
        Set c = .Find("x", LookIn:=xlValues)
        If Not c Is Nothing Then note = c.Offset(-1, 0).Value
        .ClearContents
    End With
    .Range("B1,C3,E6,H3").ClearContents
End With
With Sheets("Base")
    lig = .Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    .Cells(lig, 1) = Produit
    .Cells(lig, 2) = Age
    .Cells(lig, 3) = Categorie
    .Cells(lig, 4) = prenom
    .Cells(lig, 5) = note
End With
End Sub

En espérant que cela puisse t'aider,

Bonne journée,

mth
 

Pièces jointes

Re : Comment alimenter une base (transfert de données d'un onglet vers une base) via

Ha finalement y a un juste un ti souci mth...La macro pour placer une croix dans le formulaire m'indique une erreur d'exécution 1004 (aucune cellule ne correspond) quand je l'applique sur mon fichier.
 
Re : Comment alimenter une base (transfert de données d'un onglet vers une base) via

Re 🙂

Oui, j'aurais dû te l'écrire noir sur blanc et j'ai oublié dans mon post, so sorry 🙂, en fait il y a une validation de données dans les cellules A12 à I12 pour éviter de saisir autre chose que la lettre x.

Pour la mettre en place, dans le fichier que je t'ai joint sélectionnes A12 à I12, puis vas dans le menu données/validation (je ne sais pas si c'est le même sous Excel 2010).
Là tu vois que j'ai autorisé la saisie de la lettre x.

La macro fait référence à ces cellules ayant le même critère de validation, une fois que tu auras mis cette validation dans ton fichier ça doit fonctionner.

@ +

mth

Edit: re sabrina 🙂
Ne sois pas désolée, comme je le disais c'est moi qui ai oublié de préciser ce point dans mon message, c'est plutôt à moi d'être désolée ...
Au plaisir de te croiser sur le forum 🙂
mth
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

P
Réponses
0
Affichages
1 K
Pseudo9876
P
R
Réponses
3
Affichages
581
R
D
Réponses
0
Affichages
629
Delorentis
D
Retour