A voir également:
- Ajouter une donnée dans un tableau via un bouton
- Tableau croisé dynamique - Guide
- Ajouter un profil netflix payant - Guide
- Ajouter un compte gmail - Guide
- Tableau ascii - Guide
- Ajouter un compte whatsapp - Guide
10 réponses
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
20 févr. 2020 à 16:33
20 févr. 2020 à 16:33
Bonjour,
voir ceci
https://www.excel-exercice.com/menu-deroulant-dynamique/
voir ceci
https://www.excel-exercice.com/menu-deroulant-dynamique/
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
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
21 févr. 2020 à 12:09
21 févr. 2020 à 12:09
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
MARCO
>
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
21 févr. 2020 à 15:11
21 févr. 2020 à 15:11
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.
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
21 févr. 2020 à 16:01
21 févr. 2020 à 16:01
erreur VB est indiquée "erreur de compilation" "end sub attendu".
C'est pourtant clair
il manque le End Sub a la fin de la macro Trier donc le tri ne se fait pas!!!!!!!!!!!!!!!!
C'est pourtant clair
il manque le End Sub a la fin de la macro Trier donc le tri ne se fait pas!!!!!!!!!!!!!!!!
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é
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
21 févr. 2020 à 17:15
21 févr. 2020 à 17:15
La méthode 'Range' de l'objet '_Worksheet' a échoué
il manque un s à Worksheet:
en programmation il faut être précis!
il manque un s à Worksheet:
Worksheets("BASE DONNEES").Range("C" & derniereLigne).Value = Worksheets("BASE DONNEES").Range("D3").Value
en programmation il faut être précis!
marco
>
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
21 févr. 2020 à 17:32
21 févr. 2020 à 17:32
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
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
>
marco
21 févr. 2020 à 17:38
21 févr. 2020 à 17:38
Il ne faut rien mettre au dessus de Option Explicit
Sur qu'elle ligne se produit l erreur surlignee en jaune
Sur qu'elle ligne se produit l erreur surlignee en jaune
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
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
21 févr. 2020 à 18:49
21 févr. 2020 à 18:49
Tu mets ta macro a la suite de la Sub Trier
Pour l'erreur sers-toi de l’enregistreur de macro une nouvelle fois en faisant le tri manuellement.
Il y a peut-être quelque chose que tu as changé depuis le dernier enregistrement Tableau, la colonne de la liste n'est plus la C mais la B etc.
Pour l'erreur sers-toi de l’enregistreur de macro une nouvelle fois en faisant le tri manuellement.
Il y a peut-être quelque chose que tu as changé depuis le dernier enregistrement Tableau, la colonne de la liste n'est plus la C mais la B etc.
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
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
24 févr. 2020 à 17:58
24 févr. 2020 à 17:58
Par contre concernant le code suivant est-il normal qu'il n'y est rien avant les ":" ?
:=xlAscending
oui car on peut l'écrire comme cela:
Voilà
:=xlAscending
oui car on peut l'écrire comme cela:
Add Key:=Range("Tableau1[#All,[Mois]]"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Voilà
merci de votre retour.
J'ai remplacer par le code que vous m'avez demandé mais l'erreur perciste
J'ai remplacer par le code que vous m'avez demandé mais l'erreur perciste
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
24 févr. 2020 à 18:35
24 févr. 2020 à 18:35
mets le code complet
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
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
25 févr. 2020 à 08:01
25 févr. 2020 à 08:01
C'est bien la dernière macro que tu as faite avec l'enregistreur?
Car si tu as bien fait la manip il n'y a aucune raison que cela ne fonctionne pas
Car si tu as bien fait la manip il n'y a aucune raison que cela ne fonctionne pas
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 ?
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
25 févr. 2020 à 11:08
25 févr. 2020 à 11:08
voici l'adresse du lien.
merci
https://www.cjoint.com/c/JBzkrbVbPMo
merci
https://www.cjoint.com/c/JBzkrbVbPMo
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
Modifié le 25 févr. 2020 à 11:58
Modifié le 25 févr. 2020 à 11:58
Voilà
https://www.cjoint.com/c/JBzkXbUK3aQ
j'ai ajouté un bouton, mais tu peux mettre le code sur ton bouton (erreur de ma part)
@+ Le Pivert
https://www.cjoint.com/c/JBzkXbUK3aQ
j'ai ajouté un bouton, mais tu peux mettre le code sur ton bouton (erreur de ma part)
@+ Le Pivert
20 févr. 2020 à 17:52
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
20 févr. 2020 à 18:03
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
21 févr. 2020 à 10:56
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
25 févr. 2020 à 13:35