VBA - Excel - Macro Commande pr sup ligne n
'sup
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
'sup Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
'sup Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je débute dans ce langage qu'est le VBA. Je n'en ai jamais vu la moindre ligne avant aujourd'hui,
mais ayant quelques notions de C, je comprend le minimum du langage : mot clés...
Mon pb est simple, je dispose d'un fichier excel et aimerais créer une macro commande permettant de supprimer une ligne du fichier. Pr cela, j'ai déjà crée un bouton, qui, en cliquant dessus, lance une fenêtre
permettant a l'utilisateur de rentrer la référence du contrat qu'il souhaite supprimer.
Je ne suis pas allé plus loin car je n'ai pas vraiment d'idée pr coder cette fonciton.
Exemple
Il n'y a évidemment pas de colonne "ligne excel", il s'agit juste de la colonne a gauche de chaque
page excel, que j'ai mis ici a titre indicatif. Le 1er contrat commence néanmoins à la ligne 4, car les
3 premières lignes comportent les titres et autres indications...
Après donc avoir cliqué sur le bouton "supprimer contrat", l'utilisateur doit taper la référence du contrat
qu'il doit supprimer (comme expliqué plus haut). S'il tape 3, par exemple, la ligne dont le contrat
a pour référence le numéro 3 doit être effacé, pour être remplacée par le contrat suivant.
Dans ce cas précis, le contrat dont la réf était 4 (ligne 7) "monte d'une ligne" et sa ref devient 3.
(C'est la seule donnée de la ligne qui doit être modifiée.)
Quelque soit le contrat que l'on souhaite supprimer, seules les lignes suivant vont changer (les num
éros de ts les contrats suivant se décrémentent d'1), alors que les contrats précédent restent inchangés.
Bon c'est pas super bien expliqué, faites moi savoir s'il vous manque des informations.
J'ai réussi a faire quelques macro commandes simples, comme trier les données d'une colonne par
ordre alphabétique, par exemple, mais pour celle la c'est carrément plus dur, d'autant plus que je
débute.
Voila, toute aide me sera utile, et je vous remercie par avance.
je débute dans ce langage qu'est le VBA. Je n'en ai jamais vu la moindre ligne avant aujourd'hui,
mais ayant quelques notions de C, je comprend le minimum du langage : mot clés...
Mon pb est simple, je dispose d'un fichier excel et aimerais créer une macro commande permettant de supprimer une ligne du fichier. Pr cela, j'ai déjà crée un bouton, qui, en cliquant dessus, lance une fenêtre
permettant a l'utilisateur de rentrer la référence du contrat qu'il souhaite supprimer.
Je ne suis pas allé plus loin car je n'ai pas vraiment d'idée pr coder cette fonciton.
Exemple
Ligne excel Reference contrat Date(mois/année) Descriptif 4 1 02/08 blabla 5 2 03/08 gfdgfd 6 3 03/08 frdgfd ... ... .... .... 134 131 11/08 test
Il n'y a évidemment pas de colonne "ligne excel", il s'agit juste de la colonne a gauche de chaque
page excel, que j'ai mis ici a titre indicatif. Le 1er contrat commence néanmoins à la ligne 4, car les
3 premières lignes comportent les titres et autres indications...
Après donc avoir cliqué sur le bouton "supprimer contrat", l'utilisateur doit taper la référence du contrat
qu'il doit supprimer (comme expliqué plus haut). S'il tape 3, par exemple, la ligne dont le contrat
a pour référence le numéro 3 doit être effacé, pour être remplacée par le contrat suivant.
Dans ce cas précis, le contrat dont la réf était 4 (ligne 7) "monte d'une ligne" et sa ref devient 3.
(C'est la seule donnée de la ligne qui doit être modifiée.)
Quelque soit le contrat que l'on souhaite supprimer, seules les lignes suivant vont changer (les num
éros de ts les contrats suivant se décrémentent d'1), alors que les contrats précédent restent inchangés.
Bon c'est pas super bien expliqué, faites moi savoir s'il vous manque des informations.
J'ai réussi a faire quelques macro commandes simples, comme trier les données d'une colonne par
ordre alphabétique, par exemple, mais pour celle la c'est carrément plus dur, d'autant plus que je
débute.
Voila, toute aide me sera utile, et je vous remercie par avance.
A voir également:
- VBA - Excel - Macro Commande pr sup ligne n
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Invite de commande - Guide
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Partager photos en ligne - Guide
4 réponses
Bonjour,
Autre manière les numéros de contrat sont en colonne A
Michel
Autre manière les numéros de contrat sont en colonne A
Sub reincrementer() Dim derlig As Long, lig As Long, numero As Long Dim rqt 'demande et vérifie si saisie valable derlig = Application.CountA(Columns(1)) rqt = InputBox(" numero contrat supprimé ?") If Application.CountIf(Range("A4:A" & derlig), rqt) = 0 Then: Exit Sub 'fige le défilement de l'écran Application.ScreenUpdating = False 'recherche lig à supprimer lig = Columns(1).Find(rqt).Row Rows(lig).Delete 'affecte le numero au dessus de la supression numero = Cells(lig - 1, 1) 'réincrémente les numéros de contrats While Cells(lig, 1) <> "" numero = numero + 1 Cells(lig, 1) = numero lig = lig + 1 Wend End Sub
Michel
bien, je n'ai testé que la proposition de michel_m car elle a marché du premier coup (cepandant, merci encore une fois a vautour88)
Par contre, j'ai noté que si je souhaitais supprimer le dernier, ou l'avant dernier contrat, cela ne marchait pas (rien ne se passe). Je vais donc me pencher sur le code pr voir d'ou ça peut venir...
merci
Par contre, j'ai noté que si je souhaitais supprimer le dernier, ou l'avant dernier contrat, cela ne marchait pas (rien ne se passe). Je vais donc me pencher sur le code pr voir d'ou ça peut venir...
merci
Dim Retour As Integer
Retour = MsgBox("Numero user", vbYesNo + vbCritical + vbDefaultButton2, "demande numero user")
retour=retour+3
cells(retour,2).value=""
cells(retour,3).value=""
retour=retour+1
do while cells(retour+1,2).value <> ""
cells(retour,2).value=cells(retour+1,2).value
cells(retour,3).value=cells(retour+1,3).value
retour=retour+1
loop