Aide pour configuration d'un macro sur excel
thib1212_
Messages postés
3
Statut
Membre
-
michel_m Messages postés 18903 Statut Contributeur -
michel_m Messages postés 18903 Statut Contributeur -
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 !!!
