Difficultés à la programmation du code VBA sur excel
Juanitobz1990
-
Juanitobz1990 -
Juanitobz1990 -
Bonjour à tous et à toutes,
j'ai un tableau sur excel contenant la liste des moteurs(type, marque, puissance,vitesse de rotation etc), j'aimerai créer un bouton appelé SORTIE, à chaque fois que je selectionne une ligne du tableau puis en cliquant sur SORTIE, j'aimerai qu'il transfère toutes les données de cette ligne sur une autre feuille excel, qui va regrouper les différents moteurs sortis du magasin.
merci beaucoup
j'ai un tableau sur excel contenant la liste des moteurs(type, marque, puissance,vitesse de rotation etc), j'aimerai créer un bouton appelé SORTIE, à chaque fois que je selectionne une ligne du tableau puis en cliquant sur SORTIE, j'aimerai qu'il transfère toutes les données de cette ligne sur une autre feuille excel, qui va regrouper les différents moteurs sortis du magasin.
merci beaucoup
Configuration: Windows / Chrome 77.0.3865.120
A voir également:
- Difficultés à la programmation du code VBA sur excel
- Code ascii - Guide
- Liste déroulante excel - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Comment calculer la moyenne sur excel - Guide
- Word et excel gratuit - Guide
8 réponses
Bonsoir
Plus simple qu'un bouton (qui nécessite 2 manips : sélectionner la ligne puis cliquer sur le bouton pour lancer la macro de transfert) un double-clic sur la ligne voulue peut lancer la macro de transfert
Pour établir correctement la macro il faut un exemple de ton fichier et de sa structure exacte, que tu postes sur mon-partage.fr, tu copies le lien créé et tu reviens le coller ici
Cdlmnt
Via
Plus simple qu'un bouton (qui nécessite 2 manips : sélectionner la ligne puis cliquer sur le bouton pour lancer la macro de transfert) un double-clic sur la ligne voulue peut lancer la macro de transfert
Pour établir correctement la macro il faut un exemple de ton fichier et de sa structure exacte, que tu postes sur mon-partage.fr, tu copies le lien créé et tu reviens le coller ici
Cdlmnt
Via
La macro doit tenir compte de la structure de ton fichier (nombre de colonnes, de lignes ...) c'est pour cela que je te demandais de fournir un exemple de ton fichier en allant sur le site mon-partage.fr, en postant dessus ton fichier, ce qui crée un lien que tu copies alors et que tu reviens coller ici et qui me permettra de télécharger ton fichier car expliquer comment bâtir le code de la macro surtout que tu dis être novice, c'est pas évident !!
Je peux te faire un exemple sur un fichier bidon mais ce sera à toi de l'adapter ensuite à ton fichier sinon si j'ai ton fichier je te crée directement la macro dessus
Je peux te faire un exemple sur un fichier bidon mais ce sera à toi de l'adapter ensuite à ton fichier sinon si j'ai ton fichier je te crée directement la macro dessus
Bonjour Juanito
Ton fichier avec la macro de transfert
Un double -clic sur n’importe quelle cellule de la ligne à transférer lance la macro
ALT + F11 pour voir la macro commentée
Si tu changes le nom de la 2eme feuille que j'ai appelée Sortis, bien changer aussi cenom dans toutes les lignes de la macro qui le contiennent
Cdlmnt
Via
Ton fichier avec la macro de transfert
Un double -clic sur n’importe quelle cellule de la ligne à transférer lance la macro
ALT + F11 pour voir la macro commentée
Si tu changes le nom de la 2eme feuille que j'ai appelée Sortis, bien changer aussi cenom dans toutes les lignes de la macro qui le contiennent
Cdlmnt
Via
Désolé, un oubli !!
https://mon-partage.fr/f/15jiubpk/
https://mon-partage.fr/f/15jiubpk/
BONSOIR VIA55,
merci beaucoup pour le lien.
Cependant j'ai du mal à écrire correctement le code sur l'original.
ci joint le fichier original avec un exemple du code que j'ai saisi.
le soucis est qu'a chaque fois que je veux créer une macro pour chaque ligne, il écrase les données sur la ligne au niveau de la feuille sortie stock.
ci joint le lien : https://mon-partage.fr/f/MKibWJ5L/
mdp: via55
merci.
NB:
Désolé vraiment, je débute sur excel avec les macro et autres, donc c'est un peu plus dur pour moi.
la présence du bouton, dans l'esprit c'est pour faciliter la manipulation pour des collegues.
merci beaucoup pour le lien.
Cependant j'ai du mal à écrire correctement le code sur l'original.
ci joint le fichier original avec un exemple du code que j'ai saisi.
le soucis est qu'a chaque fois que je veux créer une macro pour chaque ligne, il écrase les données sur la ligne au niveau de la feuille sortie stock.
ci joint le lien : https://mon-partage.fr/f/MKibWJ5L/
mdp: via55
merci.
NB:
Désolé vraiment, je débute sur excel avec les macro et autres, donc c'est un peu plus dur pour moi.
la présence du bouton, dans l'esprit c'est pour faciliter la manipulation pour des collegues.
bonsoir via55,
en cliquant sur le bouton sortie, il transfere certes la ligne sélectionnée sur la feuille sortie stock, mais écrase la ligne qui était precedemment sortie, alors qu'il devait attaquer la ligne suivante.
c'est un peu compliqué, j'ai procédé en créant pour chaque ligne une macro, tout en veillant à sélectionner la ligne qui devrait réceptionner les données, mais rien ne se passe coe prévu.
si tu peux m'aider à voir plus clair ca serait super.
Merci.
en cliquant sur le bouton sortie, il transfere certes la ligne sélectionnée sur la feuille sortie stock, mais écrase la ligne qui était precedemment sortie, alors qu'il devait attaquer la ligne suivante.
c'est un peu compliqué, j'ai procédé en créant pour chaque ligne une macro, tout en veillant à sélectionner la ligne qui devrait réceptionner les données, mais rien ne se passe coe prévu.
si tu peux m'aider à voir plus clair ca serait super.
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re
Il faut une instruction dans le code qui repère d'abord la 1ere ligne vide, c'est ce que fait ma ligne :
J'ai basée cette recherche sur la colonne J car c'est la seule pour laquelle il y a une valeur pour chaque moteur
https://mon-partage.fr/f/ICzPy52x/
même mdp
Le double-clic est préférable au bouton car on cible immédiatement la ligne à transférer
avec un bouton il faudrait que la macro ouvre d'abord une boîte de message pour demander le n° de la ligne à transférer.
Ensuite je vois dans ton fichier que la feuille SUIVI comporte 2 autres colonnes, date de sortie et utilisation, ce serait bien que la macro remplisse ces 2 colonnes soit automatiquement avec la date du jour soit en demandant quelle date inscrire puis en demandant d'entrer pour quelle utilisation
Fais moi savoir si tu veux procéder ainsi, je compléterai la macro
Il faut une instruction dans le code qui repère d'abord la 1ere ligne vide, c'est ce que fait ma ligne :
ligne2 = Sheets("SORTIE STOCK").Columns(10).Find("*", , , , xlByColumns, xlPrevious).Row + 1
J'ai basée cette recherche sur la colonne J car c'est la seule pour laquelle il y a une valeur pour chaque moteur
https://mon-partage.fr/f/ICzPy52x/
même mdp
Le double-clic est préférable au bouton car on cible immédiatement la ligne à transférer
avec un bouton il faudrait que la macro ouvre d'abord une boîte de message pour demander le n° de la ligne à transférer.
Ensuite je vois dans ton fichier que la feuille SUIVI comporte 2 autres colonnes, date de sortie et utilisation, ce serait bien que la macro remplisse ces 2 colonnes soit automatiquement avec la date du jour soit en demandant quelle date inscrire puis en demandant d'entrer pour quelle utilisation
Fais moi savoir si tu veux procéder ainsi, je compléterai la macro
Bonjour via55 ,
Effectivement les colonnes date & utilisation doivent être remplies .
Je pensais le faire manuellement ; mtn si tu penses qu'il faut faire une macro pour le faire automatiquement en prenant la date du jour je trouve ça une bonne idée.
Ok pour le double clic sur la ligne au lieu du bouton.
Merci via55 .
Effectivement les colonnes date & utilisation doivent être remplies .
Je pensais le faire manuellement ; mtn si tu penses qu'il faut faire une macro pour le faire automatiquement en prenant la date du jour je trouve ça une bonne idée.
Ok pour le double clic sur la ligne au lieu du bouton.
Merci via55 .
Bonjour
Voilà donc la version avec date et utilisation (même mdp)
https://mon-partage.fr/f/4FI5LmJz/
Me dire si ça te convient
Voilà donc la version avec date et utilisation (même mdp)
https://mon-partage.fr/f/4FI5LmJz/
Me dire si ça te convient
bonjour
j ai quasiment le même probleme Via55 pourrais tu me donné le code pour acceder au lien
merci
j ai quasiment le même probleme Via55 pourrais tu me donné le code pour acceder au lien
merci
Bonjour
voilà le code de la macro mise dans la worsheet de la feuille des données à transferer
Quasiment donc pas pareil, une macro est adaptée à un fichier
Pour voir ce qui conviendrait au tien il faut fournir le fichier en le postant sur mon-partage.fr, en copiant le lien créé et en revenant le coller ici
Cdlmnt
Via
voilà le code de la macro mise dans la worsheet de la feuille des données à transferer
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ligne = Target.Row ' ligne du double-clic
If ligne < 17 Or Range("I" & ligne) = "" Then Exit Sub ' sortie sans rien faire si ligne avant la 17 ou si vide en colonen I
util = InputBox("Si vous confimez le transfert à la date d'aujourdh'hui de la ligne " & ligne & Chr(10) & "(Moteur " & Range("C" & ligne) & " Type " & Range("D" & ligne) & ")" & Chr(10) & "entrer ci-dessous l'utilisation du moteur, sinon Annuler", "CONFIRMATION transfert")
If util = "" Then Exit Sub
Range("B" & ligne & ":" & "J" & ligne).Select 'selectionne la ligne et la copie
Application.CutCopyMode = False
Selection.Cut
Sheets("SORTIE STOCK").Select ' selectionne la feuille Sortis
ligne2 = Sheets("SORTIE STOCK").Columns(10).Find("*", , , , xlByColumns, xlPrevious).Row + 1 ' 1ere ligne vide en colonne J de la feuille
Sheets("SORTIE STOCK").Range("C" & ligne2).Select ' se positionne en col A sur la 1ere ligne vide et insere ligne copiée
Selection.Insert Shift:=xlDown
Sheets("SORTIE STOCK").Range("L" & ligne2) = Date ' inscription date
Sheets("SORTIE STOCK").Range("M" & ligne2) = util ' inscription utilisation
Sheets("MENU GENERAL").Select ' reselectionne la 1ere feuille
Sheets("MENU GENERAL").Rows(ligne & ":" & ligne).Select ' selectionne la ligne du double-clic et la supprime
Selection.Delete Shift:=xlUp
MsgBox "Transfert effectué"
End Sub
Quasiment donc pas pareil, une macro est adaptée à un fichier
Pour voir ce qui conviendrait au tien il faut fournir le fichier en le postant sur mon-partage.fr, en copiant le lien créé et en revenant le coller ici
Cdlmnt
Via
Sincèrement je suis novice sur excel, est ce que c'est possible de me donner des étapes pour créer la macro de transfert?
je n'ai pas bien saisi la seconde partie de votre commentaire.
merci