Macro
Pen_9367
Messages postés
9
Statut
Membre
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour, voila c'est la première fois que je dois réaliser une macro (enfin je pense que cela doit-être une macro), cependant après de multiples recherches et tentatives impossible de trouver ce qui me convient.
Explication : j'ai un fichier excel avec différents onglets dont un qui ma liste de toutes les commandes passées par les techniciens avec une colonne réceptionné pour indiquer si la commande est réceptionné, partielle ou vide donc en attente de réception.
J'ai un second onglet nommé PV de réception que les techniciens doivent compléter pour me permettre d'effectuer la réception.
J'aimerais cliquer sur un bouton afin que cela me créer un onglet par commandes non réceptionné ou partiellement réceptionné pour un seul technicien en particulier à partir du modèle PV de réception.
De plus, dans l'onglet PV de réception il y a une ligne n° de commande qui fait que dès que je rentre un numéro de commande cela inscrit automatiquement la description de la commande dans la ligne en dessous (rechercheX). C'est pourquoi j'aimerais que au moment ou je clique cela créer X onglets (selon le nombre de commande partielle ou non réceptionné du technicien Y et que le numéro de commande sois automatiquement inscrit dans ma cellule n° de commande)
Je ne sais pas si cela est possible.
J'espère avoir été "claire".
Merci d'avance pour l'aide
Explication : j'ai un fichier excel avec différents onglets dont un qui ma liste de toutes les commandes passées par les techniciens avec une colonne réceptionné pour indiquer si la commande est réceptionné, partielle ou vide donc en attente de réception.
J'ai un second onglet nommé PV de réception que les techniciens doivent compléter pour me permettre d'effectuer la réception.
J'aimerais cliquer sur un bouton afin que cela me créer un onglet par commandes non réceptionné ou partiellement réceptionné pour un seul technicien en particulier à partir du modèle PV de réception.
De plus, dans l'onglet PV de réception il y a une ligne n° de commande qui fait que dès que je rentre un numéro de commande cela inscrit automatiquement la description de la commande dans la ligne en dessous (rechercheX). C'est pourquoi j'aimerais que au moment ou je clique cela créer X onglets (selon le nombre de commande partielle ou non réceptionné du technicien Y et que le numéro de commande sois automatiquement inscrit dans ma cellule n° de commande)
Je ne sais pas si cela est possible.
J'espère avoir été "claire".
Merci d'avance pour l'aide
A voir également:
- Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
7 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
peux-tu préparer un fichier d'exemple,
- avec l'onglet de toutes les commandes
- avec l'onglet du modèle de PV de réception
- avec un onglet exactement comme tu souhaiterais que la macro le crée
peux-tu aussi clarifier ce que tu écris:
cliquer sur un bouton afin que cela me créer un onglet par commandes non réceptionné ou partiellement réceptionné pour un seul technicien
- que veux-tu dire "pour un seul technicien"?
- si tu cliques plusieurs fois sur le bouton, que veux-tu qu'il se passe? ne va-t-on pas créer des onglets en double?
peux-tu préparer un fichier d'exemple,
- avec l'onglet de toutes les commandes
- avec l'onglet du modèle de PV de réception
- avec un onglet exactement comme tu souhaiterais que la macro le crée
peux-tu aussi clarifier ce que tu écris:
cliquer sur un bouton afin que cela me créer un onglet par commandes non réceptionné ou partiellement réceptionné pour un seul technicien
- que veux-tu dire "pour un seul technicien"?
- si tu cliques plusieurs fois sur le bouton, que veux-tu qu'il se passe? ne va-t-on pas créer des onglets en double?
Bonjour,
Voici le fichier : https://www.cjoint.com/c/JJiiYyThtXV
Ce que je souhaite c'est d'obtenir toutes les commandes partielles ou vides (non réceptionnées) pour le technicien Jean Paul et seulement Jean paul. J'aimerais que cela me créer un onglet par commande avec le modèle type. Si je clique sur le bouton cela me créer X onglets (selon le nombre de commande partielle ou vide) avec le numéro de commande déjà inscrit en cellule C7. Il ne reste plus qu'au technicien de compléter le reste
Si possible un bouton supprimer toute les feuilles serais un plus.
Voici le fichier : https://www.cjoint.com/c/JJiiYyThtXV
Ce que je souhaite c'est d'obtenir toutes les commandes partielles ou vides (non réceptionnées) pour le technicien Jean Paul et seulement Jean paul. J'aimerais que cela me créer un onglet par commande avec le modèle type. Si je clique sur le bouton cela me créer X onglets (selon le nombre de commande partielle ou vide) avec le numéro de commande déjà inscrit en cellule C7. Il ne reste plus qu'au technicien de compléter le reste
Si possible un bouton supprimer toute les feuilles serais un plus.
Non pas de doublons car chaque onglets correspond à une commande (si 5 commandes partielles de jean paul et 2 commandes vide de jean paul également alors 7 onglets 1 onglets par commande). Je ne sais pas comment le macro justement peux savoir de quel technicien il s'agit en indiquant son nom ?
En un clique j'aimerais voir apparaitre un onglet par commande partielle ou vide pour le technicien Jean paul.
En un clique j'aimerais voir apparaitre un onglet par commande partielle ou vide pour le technicien Jean paul.
Non car pour te donner plus d'info j'ai une réunion hebdo avec le technicien, je clique sur le bouton sa créer tous les onglets et je vais me servir que de certains onglets (que les commandes qu'il souhaites réceptionner, je complète le pv)après je souhaite que tous les onglets s'effacent. Une fois qu'il ma dit de réceptionner telle commande je le note dans le l'onglet liste colonne N.
Je ne sais pas comment la macro va savoir quel technicien il s'agit justement c'est aussi ma question. Peut-être en indiquant son nom et prénom dans la macro ?
il ne faut pas supprimer tous les onglets existants je dois garder mes onglets de base.
il ne faut pas supprimer tous les onglets existants je dois garder mes onglets de base.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
une suggestion
la macro se déclenche au double clique dans la colonne N
Faire Alt f11 sur la feuille LISTE pour accéder à l'éditeur et mettre ce code:
ajouter cela pour le technicien
voilà
une suggestion
la macro se déclenche au double clique dans la colonne N
Faire Alt f11 sur la feuille LISTE pour accéder à l'éditeur et mettre ce code:
Option Explicit
Dim Ws As Worksheet
Dim numero As String
Dim ligne As Long
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("N:N")) Is Nothing Then
On Error Resume Next
If Target = "" Then Exit Sub
ligne = Target.Row
numero = Range("L" & ligne).Value 'numero de commande
creer
End If
End Sub
Private Sub creer()
'Boucle sur les feuilles du classeur.
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name = numero Then 'même nom
MsgBox "Une feuille existe dèjà à ce nom!", vbExclamation, "Ajout feuille"
Application.DisplayAlerts = False 'evite message d'alerte
Sheets(Sheets.Count).Delete 'supprime la feuille créée
Application.DisplayAlerts = True
Exit Sub
End If
Next Ws
If numero = "" Then
Application.DisplayAlerts = False 'evite message d'alerte
Sheets(Sheets.Count).Delete 'supprime la feuille créée
Application.DisplayAlerts = True
Exit Sub
Else
Application.ScreenUpdating = False
'copie feuille modèle
Sheets("MODELE (2)").Copy After:=Sheets(Sheets.Count)
'renommer la feuille modèle(copie) avec le nouveau nom
Sheets(Sheets.Count).Name = numero
Sheets(numero).Range("C7").Value = numero 'numero de commande
Sheets(numero).Range("C6").Value = Sheets("LISTE").Range("E" & ligne).Value 'societe
Application.ScreenUpdating = True
End If
End Sub
ajouter cela pour le technicien
Sheets(numero).Range("A7").Value = Sheets("LISTE").Range("D" & ligne).Value 'personne en charge
voilà
Bonjour,
merci pour votre proposition mais quand je clique il ne se passe rien. J'ai du faire une mauvaise manip. Auriez-vous plus d'explications svp ?
merci pour votre proposition mais quand je clique il ne se passe rien. J'ai du faire une mauvaise manip. Auriez-vous plus d'explications svp ?
C'est presque ce que je souhaite. Je souhaite cliquer que sur les partielles ou vides. C'est possible ?
Seconde question : c'est possible de faire en sorte avec un clique sur un bouton d'avoir toutes les commandes partielles ou vides ? plutôt que de devoir cliquer un par un (après cela ne me dérange pas je verrais avec mon techniciens la méthode qu'il préfère)
Seconde question : c'est possible de faire en sorte avec un clique sur un bouton d'avoir toutes les commandes partielles ou vides ? plutôt que de devoir cliquer un par un (après cela ne me dérange pas je verrais avec mon techniciens la méthode qu'il préfère)
voilà avec un bouton qui parcourt toute la colonne:
https://www.cjoint.com/c/JJjm0HvG4eQ
et pour supprimer les feuilles créees:
tu mets le curseur sur supprimer et tu appuies sur F5 du clavier
@+ Le Pivert
https://www.cjoint.com/c/JJjm0HvG4eQ
et pour supprimer les feuilles créees:
Sub supprimer()
'Boucle sur les feuilles du classeur.
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "LISTE" And Ws.Name <> "LISTE DEROULANTE" And Ws.Name <> "MODELE (2)" Then
Application.DisplayAlerts = False 'evite message d'alerte
Ws.Delete
Application.DisplayAlerts = True
End If
Next Ws
End Sub
tu mets le curseur sur supprimer et tu appuies sur F5 du clavier
@+ Le Pivert
A mettre dans le module de la feuille LISTE
Voilà
@+ Le Pivert
Option Explicit
Dim Ws As Worksheet
Dim numero As String
Dim ligne As Long
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("N:N")) Is Nothing Then
On Error Resume Next
If Target.Value = "RECEPTIONNE" Then Exit Sub
ligne = Target.Row
numero = Range("L" & ligne).Value 'numero de commande
If numero = "" Then Exit Sub
creer
End If
End Sub
Private Sub creer()
'Boucle sur les feuilles du classeur.
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name = numero Then 'même nom
MsgBox "Une feuille existe dèjà à ce nom!", vbExclamation, "Ajout feuille"
Exit Sub
End If
Next Ws
'copie feuille modèle
Sheets("MODELE (2)").Copy After:=Sheets(Sheets.Count)
'renommer la feuille modèle(copie) avec le nouveau nom
Sheets(Sheets.Count).Name = numero
Sheets(numero).Range("C7").Value = numero 'numero de commande
Sheets(numero).Range("C6").Value = Sheets("LISTE").Range("E" & ligne).Value 'societe
End Sub
Sub supprimer()
'Boucle sur les feuilles du classeur.
For Each Ws In ThisWorkbook.Worksheets
If Ws.Name <> "LISTE" And Ws.Name <> "LISTE DEROULANTE" And Ws.Name <> "MODELE (2)" Then 'même nom
Application.DisplayAlerts = False 'evite message d'alerte
Ws.Delete
Application.DisplayAlerts = True
End If
Next Ws
End Sub
Voilà
@+ Le Pivert