Ajouter une donnée dans un tableau via un bouton
marco
-
marco -
marco -
Bonjour,
je me permet de vous demander encore de l'aide
Voilà j'ai dans une feuille un tableau de données qui sert à la création d'une liste déroulante.
Je souhaiterais que l'utilisateur indique dans une cellule définie une nouvelle donnée et qu'il puisse la faire rajouter dans le tableau de données à l'aide d'un bouton "valider".
Et pour pousser la perfection que les données après ce rajout soit mises systématiquement par ordre alphabétique.
J'espère que vous pourrez m'aider; Merci d'avance.
je me permet de vous demander encore de l'aide
Voilà j'ai dans une feuille un tableau de données qui sert à la création d'une liste déroulante.
Je souhaiterais que l'utilisateur indique dans une cellule définie une nouvelle donnée et qu'il puisse la faire rajouter dans le tableau de données à l'aide d'un bouton "valider".
Et pour pousser la perfection que les données après ce rajout soit mises systématiquement par ordre alphabétique.
J'espère que vous pourrez m'aider; Merci d'avance.
Configuration: Windows / Firefox 73.0
A voir également:
- Ajouter une donnée dans un tableau via un bouton
- Tableau word - Guide
- Trier un tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Tableau ascii - Guide
- Comment faire un tableau croisé dynamique - Guide
10 réponses
Bonjour,
merci de votre réponse.
Ma situation est un peu différente, car ma "liste déroulante" est dans une autre feuille du classeur nommé "TEST"
Voici les informations :
"Le tableau" se trouve sur une feuille nommée "BASE DONNEES"
La liste déroulante est sur une feuille nommée "TEST" en B12
et ma cellule pour rentrer la nouvelle valeur à insérer dans le tableu en D3 sur la feuille "BASE DONNEES"
J'ai modifier votre code avec ces éléments mais ça ne fonctionne pas.
Voici le code :
Merci d'avance.
Bonne journée
merci de votre réponse.
Ma situation est un peu différente, car ma "liste déroulante" est dans une autre feuille du classeur nommé "TEST"
Voici les informations :
"Le tableau" se trouve sur une feuille nommée "BASE DONNEES"
La liste déroulante est sur une feuille nommée "TEST" en B12
et ma cellule pour rentrer la nouvelle valeur à insérer dans le tableu en D3 sur la feuille "BASE DONNEES"
J'ai modifier votre code avec ces éléments mais ça ne fonctionne pas.
Voici le code :
Option Explicit
Private Sub CommandButton1_Click()
Dim derniereLigne As Long
derniereLigne = Range("C" & Rows.Count).End(xlUp).Row + 1
If Range("D3").Value = "" Then Exit Sub
Range("C" & derniereLigne).Value = Range("D3").Value
Trier 'de A à Z
End Sub
'macro faite avec l'enregistreur de macro
Sub Trier()
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Add Key:=Range("Tableau1[#All,[Mois]]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Merci d'avance.
Bonne journée
Il faut que tu l'adaptes suivant le nom des feuilles et des cellules à ton environnement
il suffit de voir la macro enregistrée pour avoir la bonne syntaxe
comme ceci:
@+ Le Pivert
il suffit de voir la macro enregistrée pour avoir la bonne syntaxe
comme ceci:
Private Sub CommandButton1_Click() Dim derniereLigne As Long derniereLigne = Worksheets("BASE DONNEES").Range("C" & Rows.Count).End(xlUp).Row + 1 If Worksheets("BASE DONNEES").Range("D3").Value = "" Then Exit Sub Worksheets("BASE DONNEES").Range("C" & derniereLigne).Value = Worksheets("BASE DONNEES").Range("D3").Value Trier 'de A à Z End Sub
@+ Le Pivert
Bonjour,
encore désolé, mais j'ai collé votre code sur le code du bouton.
Créer une macro appelé Trier dans laquelle j'ai collé ce code
et cela ne fonctionne pas.
Pouvez-vous me confirmer que ma démarche et la bonne et m'indiquer ce qui ne va pas ?
Merci
encore désolé, mais j'ai collé votre code sur le code du bouton.
Créer une macro appelé Trier dans laquelle j'ai collé ce code
'macro faite avec l'enregistreur de macro
Sub Trier()
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Add Key:=Range("Tableau1[#All,[Mois]]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
et cela ne fonctionne pas.
Pouvez-vous me confirmer que ma démarche et la bonne et m'indiquer ce qui ne va pas ?
Merci
Bonjour,
si je colle le code de mon dernier message à la suite du code du bouton, le rajout fonctionne, sauf qu'une erreur VB est indiquée "erreur de compilation" "end sub attendu".
Et autre point le rajout ce fait à la fin de la liste mais pas par ordre alphabétque.
si je colle le code de mon dernier message à la suite du code du bouton, le rajout fonctionne, sauf qu'une erreur VB est indiquée "erreur de compilation" "end sub attendu".
Et autre point le rajout ce fait à la fin de la liste mais pas par ordre alphabétque.
Bonjour,
désolé mais encore une fois je débute.
J'ai rajouté "end sub" et effectivement c'est logique.
Une nouvelle erreur apparait :
"erreur d'execution '1004'
La méthode 'Range' de l'objet '_Worksheet' a échoué
désolé mais encore une fois je débute.
J'ai rajouté "end sub" et effectivement c'est logique.
Une nouvelle erreur apparait :
"erreur d'execution '1004'
La méthode 'Range' de l'objet '_Worksheet' a échoué
Je suis désolé mais j'ai bien vérifier mon code est il y a bien un S à workshetts . Ce message s'affiche pourtant.
voici le code
voici le code
Sub savepdf()
Dim nom As String ' nom du pdf
Dim chemin As String 'chemin du dossier d'enregistrement
nom = Range("H6").Value 'adapter cellule
chemin = ActiveWorkbook.Path & "\" ' même dossier que le classeur
'enregistrement en PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & nom, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
Option Explicit
Private Sub CommandButton1_Click()
Dim derniereLigne As Long
derniereLigne = Worksheets("BASE DONNEES").Range("B" & Rows.Count).End(xlUp).Row + 1
If Worksheets("BASE DONNEES").Range("D3").Value = "" Then Exit Sub
Worksheets("BASE DONNEES").Range("B" & derniereLigne).Value = Worksheets("BASE DONNEES").Range("D3").Value
Trier 'de A à Z
End Sub
Sub Trier()
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Add Key:=Range("Tableau1[#All,[Mois]]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si je ne mais pas le code au dessus de la ligne où dois-je le mettre ?
L'erreur s produit sur les lignes ci-dessous avec une flèche sur la dernière ligne :
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Add Key:=Range("Tableau1[#All,[Mois]]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortNormal
L'erreur s produit sur les lignes ci-dessous avec une flèche sur la dernière ligne :
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Add Key:=Range("Tableau1[#All,[Mois]]"), SortOn:=xlSortOnValues, Order _
:=xlAscending, DataOption:=xlSortNormal
Bonjour,
ok pour l'enregistreur pour la macro Trier
Pour la colonne pour des raisons pratiques je les effectivement déplacée en B mais j'ai fait les modifications dans le code.
Par contre concernant le code suivant est-il normal qu'il n'y est rien avant les ":" ?
:=xlAscending
Merci
ok pour l'enregistreur pour la macro Trier
Pour la colonne pour des raisons pratiques je les effectivement déplacée en B mais j'ai fait les modifications dans le code.
Par contre concernant le code suivant est-il normal qu'il n'y est rien avant les ":" ?
:=xlAscending
Merci
Bonjour,
voici. Merci
voici. Merci
Option Explicit
Private Sub CommandButton1_Click()
Dim derniereLigne As Long
derniereLigne = Worksheets("BASE DONNEES").Range("B" & Rows.Count).End(xlUp).Row + 1
If Worksheets("BASE DONNEES").Range("D3").Value = "" Then Exit Sub
Worksheets("BASE DONNEES").Range("B" & derniereLigne).Value = Worksheets("BASE DONNEES").Range("D3").Value
Trier 'de A à Z
End Sub
Sub Trier()
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort.SortFields. _
Add Key:=Range("Tableau1[#All,[Mois]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("BASE DONNEES").ListObjects("Tableau1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Bonjour,
je viens de supprimer la macro puis de la recréer et toujours la même erreur.
Y a t'il un moyen pour que je vous envoi le fichier ?
je viens de supprimer la macro puis de la recréer et toujours la même erreur.
Y a t'il un moyen pour que je vous envoi le fichier ?
tout d'abord merci de votre réponse.
mais ce que vous me montrez c'est l'état actuel de ma feuille excel avec un tableau dynamique.
Ce que je souhaiterais c'est que l'utilisateur entre une nouvelle donnée dans une cellule définie (par exemple A1) et qu'en validant via un bouton que j'ai créer qui s’appellerait par exemple "enregistrer" cette donnée vienne s'incrémenter à mon tableau tout en gardant si possible un tri alphabétique (ce serait un plus).
Merci d'avance
https://vbaforexcel.wordpress.com/2013/08/31/determiner-la-derniere-lignecolonne-dun-tableau/
Tu mets ceci dans ton bouton
tout en gardant si possible un tri alphabétique
tu as d'origine le tri au clic droit sur ta liste
Voilà
@+ Le Pivert
La liste se situe sur le Feuillle1 dans la colonne A. La liste déroulante en C2.
La cellule définie pour entrer une nouvelle ligne en F2.
Il faut que tu l'adaptes suivant le nom des feuilles et des cellules à ton environnement.
Voici le code:
Pour trier sers-toi de l'enregistreur de macro comme moi en faisant le tri manuellement.
Voilà
@+ Le Pivert