VBA : je n'y connais rien...

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

M

Marie

Guest
Bonjour à tous,

J'ai joins mon fichier afin de mieux me faire comprendre...

1. J'aimerais pouvoir grâce à un bouton (filtre), effacer les lignes pour lesquelles la date mentionnée dans la colonne I (Retour) est dépassée de 60 jours.

2. J'aimerais créer un compteur pour chaque nouvelle entrée dans le tableau soit automatiquement à l'introduction d'une ligne, soit en cliquer sur le bouton compteur afin de savoir le nombre de demandes introduites dans le tableau. Le compteur ne doit pas tenir compte des suppressions automatiques.

3. J'aimerais faciliter l'encodage de nouvelles données : est-ce plus simple de créer un formulaire de saisie ou de se déplacer en tabultant dans le tableau ?

Merci d'aider une novice en excel
Marie

PS : pour Thierry, Dan, Dugenou ou les autres, ça me permet de résumer tout ce que je voudrais... Et merci de m'avoir déjà répondu
 

Pièces jointes

Bonjour Patrice et tous les autres,

Merci d'avoir planché sur mon projet. Cela l'améliore beaucoup mais le filtre provoque une erreur d'exécution de type "13"???

Concernant ce dernier je souhaitais que la ligne soit réellement supprimée et pas le contenu effacé.

Ton formulaire de saisie est très intéressant mais la tabulation à l'intérieur "oublie" des "textbox" ??
Je vais essayer de comprendre tes codes (et c'est pas rien pour moi qui débute...)
Grand merci
Bonne journée
Marie
 
Bonjour Marie et au Forum,
Pour le filtre à remplacer :

' pour toutes les lignes avec auteur renseigné
While Range("B" & i) <> ""
If Range("I" & i) <> "" Then ' si date renseignée
If Range("I" & i) + 30 < D Then
Rows(i & ":" & i).Delete Shift:=xlUp ' supprime
End If
Else
i = i + 1
End If
Wend

Pour les tab dans les propriétés et pour chaque combo ou textbox, il faut changer la valeur de l'option : TabIndex qui te donne l'ordre des tabulation :
= 1 pour la 1' selection, touche Tab selection l'index 2 et ainsi de suite.

A+
 
Re,
Réponse un peu rapide pour le filtre. La faim m'empèche de réflechir.

While Range("B" & i) <> ""
If Range("I" & i) <> "" Then
If Range("I" & i) + 30 < D Then
Rows(i & ":" & i).Delete Shift:=xlUp
Else
i = i + 1
End If
Else
i = i + 1
End If
Wend
A+
 
Salut Patrice et le forum,

J'espère que tu n'as pas eu de problème de digestion.
Le filtre est OK et les tabultations dans le useform aussi.

MAgnifique, que rêver de mieux...
Et si...

Est-ce qu'il serait possible que le CommandButton "OK" du Useform soit lié à une commande de "compteur" pour qu'à chaque fois que ok est validé un compteur ajoute 1 à N??

Pour apprendre, qu'est-ce que signifie cette "programmation"
Dim L As String
Dim i As Integer

Vous êtes tous fantastiques...

Merci
Marie
 
Re,
En début de module ou de UserForm, si on met l'instruction "Option Explicit" il faut définir à VB toutes les variables par "Dim" sinon erreur
l'indication "As String" dit que "L" est defini en caractère et "As Integer" est du numérique de -32 xxx à + 32 xxx le chiffre n'echappe.
Une astuce : sélectionne (en bleu) avec la souris le nom "Dim" et appuie sur F1 => aide VB, tu auras toutes les infos.

Pour le compteur, dans le "Private Sub OKButton_Click" avant le End Sub tu ajoutes :
TheNum = Sheets("Demande").Range("A1")
TheNum = TheNum + 1
Sheets("Demande").Range("A1") = TheNum
Ne pas oublier "Dim TheBum As Integer" en dessous de Private ...

A+
 
C'est mon jour de chance on dirait§
Merci Patrice,
Pour le compteur un message d'erreur est indiqué : erreur de compilation, variable non définie et il surligne ta ligne de programmation suivante :
TheNum = Sheets("Demande").Range("A1")

Moi pas comprendre
Je vous rassure tous, je vais me procurer un manuel de VB pour connaître au moins le BEA-BA.

Merci encore
Marie
 
Bonjour à tous et à Myta en particulier...
Merci oui, ce n'était qu'une erreur de retranscription et le compteur fonctionne bien.
Merci

J'ai encore un petit souci avec le formulaire créé par Patrice :

J'ai changé l'ordre de priorité des textbox et lorsque je complète la textbox placée en tête de mon formulaire(cote), le contenu s'efface dés que je passe à la combobox suivante (auteur). Pourquoi ??

Par ailleurs, lorsque je veux remplir la combobox Auteur avec la lettre S uniquement, il m'affiche une erreur de type 380 : impossible de définir la propriété Listindex. Valeur de propriété non valide .

Le débogage surlinge la commande suivante :
ComboBox2.ListIndex = 0 ' affiche le 1' titre

Si vous savez déchiffrez sinon je joindrai le nouveau fichier actualisé.
Merci, merci beaucoup
 
Comment ajouter du code dans un commandbutton

bonjour à tous

je voudrai ajouter du code dans un commandbutton crée à partir d'excel vba situé dans une sheet


voila ce que je fais

Dim OLEObj As OLEObject
Dim ws As Worksheet

Set ws = Worksheets(activesheet.name)
'
'Créaton du bouton
'
Set OLEObj = ws.OLEObjects.Add(classtype:="Forms.CommandButton.1", Left:=362, Top:=23, Width:=87, Height:=20)
OLEObj.Name = "Cmd_Effacer"
OLEObj.Object.Caption = "Effacer la Feuille"
OLEObj.Object.Click = code


merci de me répondre rapidement, urgent
 
- 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

Réponses
0
Affichages
20 K
Réponses
0
Affichages
771
Retour