Comment recopier feuille avec formule
flexi2202
Messages postés
3822
Date d'inscription
Statut
Membre
Dernière intervention
-
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
bonjour a tous
j ai un classeur avec une feuille nomee commande
dans la colonne I j ai un menu déroulant ou il est inscrit suspendu oui et non
lorsque je choisis "non " la ligne est effacer et directement recopier dans la feuille réception camion
je souhaiterais faire la même chose de la feuille réception camion vers la feuille réception luc
j ai essaye mais sans succès
https://www.cjoint.com/c/ICgmMC0Qf6z
un grand merci pour l aide
j ai un classeur avec une feuille nomee commande
dans la colonne I j ai un menu déroulant ou il est inscrit suspendu oui et non
lorsque je choisis "non " la ligne est effacer et directement recopier dans la feuille réception camion
je souhaiterais faire la même chose de la feuille réception camion vers la feuille réception luc
j ai essaye mais sans succès
https://www.cjoint.com/c/ICgmMC0Qf6z
un grand merci pour l aide
A voir également:
- Comment recopier feuille avec formule
- Formule si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Formule mathématique - Télécharger - Études & Formations
- Formule somme excel colonne - Guide
15 réponses
Bonjour,
j'ai été au plus simple : aucun contrôle comme à-priori ils ont été fait dans la 1ère copie.
à mettre dans le module de ' reception camion'
eric
j'ai été au plus simple : aucun contrôle comme à-priori ils ont été fait dans la 1ère copie.
Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range Set c = Intersect(Target, Columns(9)) If Not c Is Nothing Then If c.Count > 1 Then Exit Sub If c = "oui" Then Application.ScreenUpdating = False c.EntireRow.Copy With Sheets("reception luc") .Cells(.Cells(Rows.Count, 9).End(xlUp).Row + 1, 1).PasteSpecial End With Application.EnableEvents = False c.EntireRow.Delete Application.EnableEvents = True End If End If End Sub
à mettre dans le module de ' reception camion'
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour eriiic
un super grand merci pour la réponse
mais cela ne fonctionne qu a moitie
j ai repris ton code pour l appliquer a un autre fichier similaire
me suis trompe lors de l envois du fichier exemple
en effet lorsque j ouvre la feuille commande et que je passe de suspendu a oui , cela envois bien la ligne vers réception camion mais pas avec le menu déroulant permettant de choisir oui et de l envoyer vers réception luc
voici ce que je souhaiterais avec ce bon fichier exemple
c est que dans la feuille commande lorsque je passe de suspendu a oui que la ligne soit effacer et copier vers réception camion
jusque la cela est ok
ensuite dans la feuille réception camion que la ligne qui a été copier de la feuille commande soit en mode suspendu avec le menu déroulant me permettant de passe du mode suspendu a oui , d effacer la ligne et l envoyer vers réception luc
https://www.cjoint.com/c/ICkurCzfglO
un super grand merci pour la réponse
mais cela ne fonctionne qu a moitie
j ai repris ton code pour l appliquer a un autre fichier similaire
me suis trompe lors de l envois du fichier exemple
en effet lorsque j ouvre la feuille commande et que je passe de suspendu a oui , cela envois bien la ligne vers réception camion mais pas avec le menu déroulant permettant de choisir oui et de l envoyer vers réception luc
voici ce que je souhaiterais avec ce bon fichier exemple
c est que dans la feuille commande lorsque je passe de suspendu a oui que la ligne soit effacer et copier vers réception camion
jusque la cela est ok
ensuite dans la feuille réception camion que la ligne qui a été copier de la feuille commande soit en mode suspendu avec le menu déroulant me permettant de passe du mode suspendu a oui , d effacer la ligne et l envoyer vers réception luc
https://www.cjoint.com/c/ICkurCzfglO
Bonjour,
Avec un mauvais fichier et des explications incomplètes c'est un miracle que ça fonctionne déjà à moitié... ;-)
J'ai donc changé la colonne 'certifié' de 9 en 10.
Et j'ai modifié la macro existante pour rétablir la liste de choix et la pré-sélectionner à "suspendu".
Regarde si j'ai bien compris
https://www.cjoint.com/c/ICkvAErRBB6
eric
Avec un mauvais fichier et des explications incomplètes c'est un miracle que ça fonctionne déjà à moitié... ;-)
J'ai donc changé la colonne 'certifié' de 9 en 10.
Et j'ai modifié la macro existante pour rétablir la liste de choix et la pré-sélectionner à "suspendu".
Regarde si j'ai bien compris
https://www.cjoint.com/c/ICkvAErRBB6
eric
bonjour eriic
désolé pour l ancien fichier et les mauvaises explications
super nickel c est exactement cela que je cherchais un tout grand méga merci
je viens de recréer un nouvel onglet expédition et j ai donc recopier la macro dans le module de réception de luc
cela fonctionne a merveille
par contre je ne vois pas comment modifier le module 1 pour avoir l état de suspendu au lieu de oui dans la feuille réception de luc
désolé pour l ancien fichier et les mauvaises explications
super nickel c est exactement cela que je cherchais un tout grand méga merci
je viens de recréer un nouvel onglet expédition et j ai donc recopier la macro dans le module de réception de luc
cela fonctionne a merveille
par contre je ne vois pas comment modifier le module 1 pour avoir l état de suspendu au lieu de oui dans la feuille réception de luc
bonjour eriiic
merci pour la réponse
non ce que tu as fais c est nickel
mais pour comprendre ce que tu as fais j ai crée un nouvel onglet expédition
et j ai recopier la macro dans le module réception luc en changeant bien évidement le contenu du code de
par
mais malheureusement dans le menu déroulant de la feuille reception luc le menu est mis sur oui
j aurais souhaiter savoir ce que je dois changer pour que le menu puisse être non pas sur oui mais sur suspendu
comme tu as fais pour réception camion
merci pour la réponse
non ce que tu as fais c est nickel
mais pour comprendre ce que tu as fais j ai crée un nouvel onglet expédition
et j ai recopier la macro dans le module réception luc en changeant bien évidement le contenu du code de
With Sheets("reception luc")
par
With Sheets("expedition")
mais malheureusement dans le menu déroulant de la feuille reception luc le menu est mis sur oui
j aurais souhaiter savoir ce que je dois changer pour que le menu puisse être non pas sur oui mais sur suspendu
comme tu as fais pour réception camion
Bonjour,
à tester :
eric
à tester :
Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range, numlig As Long ' suite du code ' ... With Sheets("reception luc") numlig = .Cells(Rows.Count, 10).End(xlUp).Row + 1 .Cells(numlig, 1).PasteSpecial ' rétablissement liste déroulate et mise à suspendu .Cells(numlig, 10).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="oui,non,suspendu" .Cells(numlig, 10) = "suspendu" ' suite du code ' ...
eric
j ai essaye comme ceci
mais cela ne fonctionne pas
si j indique oui rien ne se passe
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Set c = Intersect(Target, Columns(9))
If Not c Is Nothing Then
If c.Count > 1 Then Exit Sub
If c = "oui" Then
Application.ScreenUpdating = False
c.EntireRow.Copy
With Sheets("reception luc")
numlig = .Cells(Rows.Count, 10).End(xlUp).Row + 1
.Cells(numlig, 1).PasteSpecial
' rétablissement liste déroulate et mise à suspendu
.Cells(numlig, 10).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="oui,non,suspendu"
.Cells(numlig, 10) = "suspendu"
End With
Application.EnableEvents = False
c.EntireRow.Delete
Application.EnableEvents = True
End If
End If
End Sub
mais cela ne fonctionne pas
si j indique oui rien ne se passe
C'est toujours pareil.
Sans fichier je ne peux savoir précisément ce que tu as fait...
Et je n'y comprend rien.
Tu avais dit vouloir copier des lignes de reception luc vers une autre feuille.
C'est donc à mettre dans la feuille reception luc, et il faut changer le nom de la feuille destination.
eric
Sans fichier je ne peux savoir précisément ce que tu as fait...
Et je n'y comprend rien.
Tu avais dit vouloir copier des lignes de reception luc vers une autre feuille.
C'est donc à mettre dans la feuille reception luc, et il faut changer le nom de la feuille destination.
eric
merci pour la reponse eriiic
donc je reapitule
j ai une feuille "commande" a laquelle j ajoute des lignes qui sont sur le statut "suspendu" dans la colonne J
je souhaitais que lorsque je choisi a travers le menu déroulant de la colonne 10 "oui"
que la ligne soit effacée et copier vers la feuille "reception camion "
a ce moment une nouvelle ligne est ajoutée a la feuille réception camion (celle qui vient d être effacée de "la feuille commande "
a la colonne J de la feuille réception camion je me retrouvais avec le statut a oui
grâce a ta dernière macro ce statut est passe a "suspendu "
et donc lorsque je faisais passer le statut a "oui"
la ligne était efface de la feuille réception camion pour être copiée sur la feuille "réception luc"
donc jusque la tout est nickel super
a présent j ai crée une nouvelle feuille "expedition "
donc je souhaiterais que le statut de la ligne de "reception luc "de la colonne J passe non pas a "oui" mais a "suspendu"
afin que je puisse choisir "oui"afin que la ligne soit effacée de la feuille "reception luc" et copier vers "expedition "
en résume
refaire la meme chose que ce que tu as fait de "reception camion" vers "reception luc"
mais cette fois de "reception luc" vers "expedition"
https://www.cjoint.com/c/IClmihUCHEz
donc je reapitule
j ai une feuille "commande" a laquelle j ajoute des lignes qui sont sur le statut "suspendu" dans la colonne J
je souhaitais que lorsque je choisi a travers le menu déroulant de la colonne 10 "oui"
que la ligne soit effacée et copier vers la feuille "reception camion "
a ce moment une nouvelle ligne est ajoutée a la feuille réception camion (celle qui vient d être effacée de "la feuille commande "
a la colonne J de la feuille réception camion je me retrouvais avec le statut a oui
grâce a ta dernière macro ce statut est passe a "suspendu "
et donc lorsque je faisais passer le statut a "oui"
la ligne était efface de la feuille réception camion pour être copiée sur la feuille "réception luc"
donc jusque la tout est nickel super
a présent j ai crée une nouvelle feuille "expedition "
donc je souhaiterais que le statut de la ligne de "reception luc "de la colonne J passe non pas a "oui" mais a "suspendu"
afin que je puisse choisir "oui"afin que la ligne soit effacée de la feuille "reception luc" et copier vers "expedition "
en résume
refaire la meme chose que ce que tu as fait de "reception camion" vers "reception luc"
mais cette fois de "reception luc" vers "expedition"
https://www.cjoint.com/c/IClmihUCHEz
merci pour la reponse
j ai essaye avec le code que j ai tente de remettre comme indique au post 13
mais cela ne fonctionne pas
j ai essaye de mettre le code au post 13 dans les feuilles
reception camion
et
reception luc
en adaptant les noms
j ai essaye avec le code que j ai tente de remettre comme indique au post 13
mais cela ne fonctionne pas
j ai essaye de mettre le code au post 13 dans les feuilles
reception camion
et
reception luc
en adaptant les noms
Ah oui, contrairement à la macro pré-existante je copie tout, y compris la liste déroulante.
La recréer sans la supprimer donnait une erreur.
Corrigé : https://www.cjoint.com/c/IClqCQsukz6
eric
La recréer sans la supprimer donnait une erreur.
Corrigé : https://www.cjoint.com/c/IClqCQsukz6
eric
bonsoir eriiic
voila super nickel , cela fonctionne a merveille et en plus je peux ajouter des feuilles
j ai essaye de supprimer la ligne des titres en double sur la feuille commande
ou il y a comme titre
date /plaque ect...
mais sans suces
j ai toujours une erreur
peux tu y jeter un oeil merci
je souhaiterais ne garder que la ligne 1 ou la 2 , mais pas les deux
voila super nickel , cela fonctionne a merveille et en plus je peux ajouter des feuilles
j ai essaye de supprimer la ligne des titres en double sur la feuille commande
ou il y a comme titre
date /plaque ect...
mais sans suces
j ai toujours une erreur
peux tu y jeter un oeil merci
je souhaiterais ne garder que la ligne 1 ou la 2 , mais pas les deux
Ligne 2 supprimée sans erreur.
Il faut prendre l'habitude de dire quoi comme erreur.
Ce que tu fais, le message d'erreur, ligne en erreur si macro et dans quel sub de quel module, etc
Si tu avais fait ça au-dessus, j'aurais regardé plus tôt en sachant qu'une ligne de code tombait en erreur.
"Ne fonctionne pas" ou "j'ai une erreur" ne veut strictement rien dire et je n'y répondrais plus.
eric
Il faut prendre l'habitude de dire quoi comme erreur.
Ce que tu fais, le message d'erreur, ligne en erreur si macro et dans quel sub de quel module, etc
Si tu avais fait ça au-dessus, j'aurais regardé plus tôt en sachant qu'une ligne de code tombait en erreur.
"Ne fonctionne pas" ou "j'ai une erreur" ne veut strictement rien dire et je n'y répondrais plus.
eric
merci pour la reponse
mais de mon cote lorsque je supprime la ligne 2 de la feuille commande
et que prends n importe quelle ligne de la feuille de commande
que je passe le mode "suspendu" de la colonne J en "oui"
j ai une erreur de debogage
qui est la suivante
erreur d exécution 91
variable objet ou variable de bloc with non définie
et lorsque je clique sur debogage
j atterris dans la code suivant
l erreur colorie en jaune la ligne suivante dans la code
LCol = Chr(Plage.Find(Nom_Col, lookat:=xlWhole).Column + 64) 'lettre colonne "certifié"
voici le fichier
https://www.cjoint.com/c/IClqCQsukz6
mais de mon cote lorsque je supprime la ligne 2 de la feuille commande
et que prends n importe quelle ligne de la feuille de commande
que je passe le mode "suspendu" de la colonne J en "oui"
j ai une erreur de debogage
qui est la suivante
erreur d exécution 91
variable objet ou variable de bloc with non définie
et lorsque je clique sur debogage
j atterris dans la code suivant
Const Nom_Col As String = "certifié"
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range
If Target.Count > 1 Then Exit Sub 'si on modifie plusieurs cellules simultanément
adDC = Cells(2, Columns.Count).End(xlToLeft).Address
If Not Intersect(Columns("B"), Target) Is Nothing Then
If Target.Value = "" Then Exit Sub
Range("A" & Target.Row).Value = Date
Range("A" & Target.Row).NumberFormat = "dd/mm/yyyy"
End If
LDCol = Split(adDC, "$")(1) 'lettre derniere colonne ligne 2
NDCol = Range(Split(adDC, "$")(1) & 1).Column 'derniere colonne en nombre
Set Plage = Range("A2:" & LDCol & 2) 'plage de colonnes ligne 2
LCol = Chr(Plage.Find(Nom_Col, lookat:=xlWhole).Column + 64) 'lettre colonne "certifié"
If Application.CountIf(Plage, Nom_Col) > 0 Then 'existe
If Not Intersect(Target, Range(LCol & "2:" & LCol & "50")) Is Nothing Then 'plage à adapter
If UCase(Target) = "OUI" Then
noEvents = True
nouvlig = Sheets(" reception camion").Cells(Rows.Count, 1).End(xlUp).Row + 1 'index de la première ligne vide dans "Archives"
Cells(Target.Row, 1).Resize(1, NDCol).Copy
With Sheets(" reception camion")
.Cells(nouvlig, 1).Resize(1, NDCol).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
' rétablissement liste déroulate et mise à suspendu
.Cells(nouvlig, 10).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="oui,non,suspendu"
.Cells(nouvlig, 10) = "suspendu"
End With
noEvents = False
Application.EnableEvents = False 'désactiver les événements
Cells(Target.Row, 1).EntireRow.Delete
Application.EnableEvents = True
End If
End If
Else
MsgBox "Attention: " & Nom_Col & " n'extiste pas !!!!!!!"
End If
Set Plage = Nothing
l erreur colorie en jaune la ligne suivante dans la code
LCol = Chr(Plage.Find(Nom_Col, lookat:=xlWhole).Column + 64) 'lettre colonne "certifié"
voici le fichier
https://www.cjoint.com/c/IClqCQsukz6
Oui, j'avais bien vu.
Je voulais que tu prennes conscience qu'on ne voit pas ton écran, ni ce que tu fais. On ne va pas tout tester au hasard en espérant tomber sur l'anomalie.
Je suppose que tu avais laissé une ligne 1 vide et qu'ensuite tu as voulu faire remonter ton tableau.
Seulement tout est calculé avec des titres en ligne 2.
Pour être franc le code n'est pas très joli avec pas mal de lourdeurs.
Sans parler des variables non déclarées, et bien sûr non typées...
Ca ne me plait qu'à moitié de travailler là-dessus.
Essaie de remettre d'aplomb en corrigeant toute les lignes 2 en ligne 1.
Si tu n'y arrives pas je le referai.
Autre détail : " reception camion" avec un espace qu'on ne voit pas devant comme non de feuille ce n'est pas terrible non plus.
Tu as peur de surmonter trop facilement les pièges de vba pour t'en rajouter ? ;-)
eric
Je voulais que tu prennes conscience qu'on ne voit pas ton écran, ni ce que tu fais. On ne va pas tout tester au hasard en espérant tomber sur l'anomalie.
Je suppose que tu avais laissé une ligne 1 vide et qu'ensuite tu as voulu faire remonter ton tableau.
Seulement tout est calculé avec des titres en ligne 2.
Pour être franc le code n'est pas très joli avec pas mal de lourdeurs.
Sans parler des variables non déclarées, et bien sûr non typées...
Ca ne me plait qu'à moitié de travailler là-dessus.
Essaie de remettre d'aplomb en corrigeant toute les lignes 2 en ligne 1.
Si tu n'y arrives pas je le referai.
Autre détail : " reception camion" avec un espace qu'on ne voit pas devant comme non de feuille ce n'est pas terrible non plus.
Tu as peur de surmonter trop facilement les pièges de vba pour t'en rajouter ? ;-)
eric
bonjour eriiic
merci pour la reponse
il est vrai que celui qui m aide n est pas devant mon écran et donc peux pas deviner
et donc c est pas toujours évident de bien explique
car on peux aussi noyer celui qui t aide dans le détail de la chose
donc il faut trouver la bonne méthode
enfin soit je ferais plus attention
en fait c est un code que j ai trouve et que j ai essaye de mettre en place pour mon besoin
et c est vrai qu en y regardant de plus prés que tout est calculé avec la ligne 2
donc j ai changer quelques valeurs et voila cela fonctionne a merveille encore merci
par contre je n ai pas bien compris l histoire avec la feuille "réception camion "
en fait en VBA j y connais que très peu de choses donc je ne peux pas dire que j ai fait ça ou ça
car mon seul but est d aider mon amie
quand je vois les lignes de code cela me parait une montagne a franchir pour apprendre
mais bon l hiver prochain je compte m y mettre
faudrait que je sache par ou commencer ...
merci pour la reponse
il est vrai que celui qui m aide n est pas devant mon écran et donc peux pas deviner
et donc c est pas toujours évident de bien explique
car on peux aussi noyer celui qui t aide dans le détail de la chose
donc il faut trouver la bonne méthode
enfin soit je ferais plus attention
en fait c est un code que j ai trouve et que j ai essaye de mettre en place pour mon besoin
et c est vrai qu en y regardant de plus prés que tout est calculé avec la ligne 2
donc j ai changer quelques valeurs et voila cela fonctionne a merveille encore merci
par contre je n ai pas bien compris l histoire avec la feuille "réception camion "
en fait en VBA j y connais que très peu de choses donc je ne peux pas dire que j ai fait ça ou ça
car mon seul but est d aider mon amie
quand je vois les lignes de code cela me parait une montagne a franchir pour apprendre
mais bon l hiver prochain je compte m y mettre
faudrait que je sache par ou commencer ...