Aide pour configuration d'un macro sur excel
thib1212_
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai besoin de configurer une grille excel pour mon entreprise. Pour cela, je dois mettre en place un macro pour que (voir le fichier joint) :
- lorsque le statut dans la colonne G de la feuille 1 passe en "Accepté"
- la ligne est copié dans la feuille 2
Bien évidemment il faudrait que les lignes se collent les unes en dessous des autres afin de ne pas effacer les précédentes.
Quelqu'un aurait-il configurer cela ?
Le document est : https://www.cjoint.com/c/KInkaWERch2
J'ai besoin de configurer une grille excel pour mon entreprise. Pour cela, je dois mettre en place un macro pour que (voir le fichier joint) :
- lorsque le statut dans la colonne G de la feuille 1 passe en "Accepté"
- la ligne est copié dans la feuille 2
Bien évidemment il faudrait que les lignes se collent les unes en dessous des autres afin de ne pas effacer les précédentes.
Quelqu'un aurait-il configurer cela ?
Le document est : https://www.cjoint.com/c/KInkaWERch2
Configuration: Windows / Chrome 93.0.4577.63
A voir également:
- Aide pour configuration d'un macro sur excel
- Ethernet n'a pas de configuration ip valide - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Panneau de configuration - Guide
- Word et excel gratuit - Guide
8 réponses
Bonjour,
Pour faire une boucle:
https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/
pour trouver la dernière ligne remplie:
https://excel-malin.com/tutoriels/vba-tutoriels/vba-trouver-la-derniere-cellule-utilisee/
pour copier une plage:
https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.copy
ce qui donne cette macro, a mettre dans un module et à associer à un bouton ou un raccourci clavier:
Voilà
Pour faire une boucle:
https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/
pour trouver la dernière ligne remplie:
https://excel-malin.com/tutoriels/vba-tutoriels/vba-trouver-la-derniere-cellule-utilisee/
pour copier une plage:
https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.copy
ce qui donne cette macro, a mettre dans un module et à associer à un bouton ou un raccourci clavier:
Option Explicit 'https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/ 'https://excel-malin.com/tutoriels/vba-tutoriels/vba-trouver-la-derniere-cellule-utilisee/ 'https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.copy Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Dim DerniereLigneUtilisee As Long Set FL1 = Worksheets("Liste de commande") NoCol = 7 'lecture de la colonne G For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) If Var = "Accepté" Then DerniereLigneUtilisee = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1 'où X est la colonne donnée FL1.Range("A" & NoLig & ":H" & NoLig).Copy _ Destination:=Worksheets("Feuil1").Range("A" & DerniereLigneUtilisee) End If Next Set FL1 = Nothing End Sub
Voilà
Bonjour,
Merci pour votre aide, ca marche très bien !
Par contre, est-il obligé d'associer cette macro à un bouton ? Cela peut-il se faire automatiquement ?
Merci pour votre aide, ca marche très bien !
Par contre, est-il obligé d'associer cette macro à un bouton ? Cela peut-il se faire automatiquement ?
Oui en déclenchant la macro à l'activation de la feuille1
Se mettre sur la feuille 1 et faire Alt F11 pour accéder à son module:
mettre ce code:
mais il va falloir corriger la macro, car si on n'efface pas les anciennes saisies cela va s'accumuler!
on efface donc :
voilà prêt à l'emploi!
@+ Le Pivert
Se mettre sur la feuille 1 et faire Alt F11 pour accéder à son module:
mettre ce code:
Option Explicit Private Sub Worksheet_Activate() For_X_to_Next_Ligne End Sub
mais il va falloir corriger la macro, car si on n'efface pas les anciennes saisies cela va s'accumuler!
on efface donc :
Option Explicit 'https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/ 'https://excel-malin.com/tutoriels/vba-tutoriels/vba-trouver-la-derniere-cellule-utilisee/ 'https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.copy Sub For_X_to_Next_Ligne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Dim DerniereLigneUtilisee As Long Set FL1 = Worksheets("Liste de commande") NoCol = 7 'lecture de la colonne G DerniereLigneUtilisee = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1 'où X est la colonne donnée Range("A2:H" & DerniereLigneUtilisee).ClearContents 'on efface For NoLig = 2 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) If Var = "Accepté" Then DerniereLigneUtilisee = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1 'où X est la colonne donnée FL1.Range("A" & NoLig & ":H" & NoLig).Copy _ Destination:=Worksheets("Feuil1").Range("A" & DerniereLigneUtilisee) End If Next Set FL1 = Nothing End Sub
voilà prêt à l'emploi!
@+ Le Pivert
Bonjour,
Je viens de voir qu'il y a une erreur sur la macro, en effet quand la fonction "accepté" est renseigné, toutes les lignes de la feuille 1 sont copiés. Or, il faudrait que seulement la ligne concerné soit copié et non celle d'avant (car sinon on les retrouve plusieurs fois dans la feuille 2).
Que faut-il changer ?
Je viens de voir qu'il y a une erreur sur la macro, en effet quand la fonction "accepté" est renseigné, toutes les lignes de la feuille 1 sont copiés. Or, il faudrait que seulement la ligne concerné soit copié et non celle d'avant (car sinon on les retrouve plusieurs fois dans la feuille 2).
Que faut-il changer ?
Bonjour,
Il y a une erreur sur la macro, en effet quand la fonction "accepté" est renseigné, toutes les lignes de la feuille 1 sont copiés. Or, il faudrait que seulement la ligne concerné soit copié et non celle d'avant (car sinon on les retrouve plusieurs fois dans la feuille 2).
Que faut-il changer ?
Il y a une erreur sur la macro, en effet quand la fonction "accepté" est renseigné, toutes les lignes de la feuille 1 sont copiés. Or, il faudrait que seulement la ligne concerné soit copié et non celle d'avant (car sinon on les retrouve plusieurs fois dans la feuille 2).
Que faut-il changer ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
4 jours après mon envoi, je n'ai plus le classeur...
Donc,
renvoie ton classeur avec la macro
et pas dans 4 jours !!!
4 jours après mon envoi, je n'ai plus le classeur...
Donc,
renvoie ton classeur avec la macro
et pas dans 4 jours !!!