Erreur de copie de données
Résolu/Fermé
safach
Messages postés
252
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
13 mars 2021
-
13 sept. 2019 à 14:49
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 17 sept. 2019 à 15:26
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 17 sept. 2019 à 15:26
A voir également:
- Erreur de copie de données
- Erreur 0x80070643 - Accueil - Windows
- Copie cachée - Guide
- Copie écran samsung - Guide
- Reinstaller windows sans perte de données - Guide
- Supprimer les données de navigation - Guide
13 réponses
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
15 sept. 2019 à 06:54
15 sept. 2019 à 06:54
Bonjour,
Que voulez-vous dire par "La copie est altérée"? A quel niveau?
Votre code quelque peu modifié
Cdlt
Que voulez-vous dire par "La copie est altérée"? A quel niveau?
Votre code quelque peu modifié
Private Sub CommandButton1_Click() Dim f1 As Worksheet, f2 As Worksheet, f3 As Worksheet Application.ScreenUpdating = False Set f1 = Sheets("MODELE") Set f3 = Sheets(4) 'copie feuille modele - place la copie en 3eme poistion et la renomme avec la date f1.Copy Before:=Sheets(3) Set f2 = Sheets("MODELE (2)") f2.Name = Day(ladate) & "-" & Month(ladate) & "-" & Year(ladate) - 2000 f2.Range("T1:X1").FormulaR1C1 = ladate 'si la case feuille vierge n'est pas cochée, boucle sur les lignes et copie données feuille précédente If Me.vierge.Value = False Then f2.Range("E3:E8").Value = f3.Range("H3:H8").Value f2.Range("D3:D8").Value = f3.Range("D3:D8").Value f2.Range("I3:I8").Value = f3.Range("I3:I8").Value f2.Range("J3:J8").Value = f3.Range("J3:J8").Value f2.Range("E10:E20").Value = f3.Range("H10:H20").Value f2.Range("D10:D20").Value = f3.Range("D10:D20").Value f2.Range("I10:I20").Value = f3.Range("I10:I20").Value f2.Range("J10:J20").Value = f3.Range("J10:J20").Value f2.Range("D25:D37").Value = f3.Range("D25:D37").Value f2.Range("E25:E37").Value = f3.Range("E25:E37").Value f2.Range("F25:F37").Value = f3.Range("F25:F37").Value f2.Range("G25:G37").Value = f3.Range("G25:G37").Value End If f2.Shapes("CommandButton1").Delete Unload UserForm2 Set f1 = Nothing Set f2 = Nothing Set f3 = Nothing End Sub
Cdlt
safach
Messages postés
252
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
13 mars 2021
2
Modifié le 15 sept. 2019 à 17:43
Modifié le 15 sept. 2019 à 17:43
Bonjour Frenchie83
merci de votre réponse
si vous essayer de créer une nouvelle feuille l'onglet modèle est copié , la désignation aussi est copiée de l'onglet qui le précède mais les compteurs ne sont pas copiés de la façon souhaitée
en fait je veux que le colonne des derniers compteurs I de l'onglet 02/09/19 se met dans le colonne des premiers compteurs E de la feuille créée 03/09/19
merci encore
bien cordialement
merci de votre réponse
si vous essayer de créer une nouvelle feuille l'onglet modèle est copié , la désignation aussi est copiée de l'onglet qui le précède mais les compteurs ne sont pas copiés de la façon souhaitée
en fait je veux que le colonne des derniers compteurs I de l'onglet 02/09/19 se met dans le colonne des premiers compteurs E de la feuille créée 03/09/19
merci encore
bien cordialement
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
15 sept. 2019 à 19:15
15 sept. 2019 à 19:15
Bonsoir,
en fait je veux que le colonne des derniers compteurs I de l'onglet 02/09/19 se met dans le colonne des premiers compteurs E de la feuille créée 03/09/19 mais ceci n'apparaissait pas dans le code de votre fichier d'origine. A l'origine on peut voir que c'est la colonne H et non pas la colonne I qui est recopiée en E, si le problème n'est que là, remplacez H par I.
Je pense que le code est suffisamment simple et limpide pour que vous puissiez le faire vous-même.
Cdlt
en fait je veux que le colonne des derniers compteurs I de l'onglet 02/09/19 se met dans le colonne des premiers compteurs E de la feuille créée 03/09/19 mais ceci n'apparaissait pas dans le code de votre fichier d'origine. A l'origine on peut voir que c'est la colonne H et non pas la colonne I qui est recopiée en E, si le problème n'est que là, remplacez H par I.
f2.Range("E3:E8").Value = f3.Range("I3:I8").Value f2.Range("E10:E20").Value = f3.Range("I10:I20").Value
Je pense que le code est suffisamment simple et limpide pour que vous puissiez le faire vous-même.
Cdlt
safach
Messages postés
252
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
13 mars 2021
2
15 sept. 2019 à 19:25
15 sept. 2019 à 19:25
Bonsoir,
je ne suis pas l'auteur du code; le fichier fonctionnait parfaitement mais il y avait un ajout de colonnes et tout d'un coup ça ne fonctionne plus comme avant
j'essayé de remplacer H par I mais en activant la macro ça déclenche la copie du colonne I du 02/09/19 au colonne I du 03/09/19 pas dans le colonne E du 03/09/19 crée
merci de votre aide
bien cordialement
je ne suis pas l'auteur du code; le fichier fonctionnait parfaitement mais il y avait un ajout de colonnes et tout d'un coup ça ne fonctionne plus comme avant
j'essayé de remplacer H par I mais en activant la macro ça déclenche la copie du colonne I du 02/09/19 au colonne I du 03/09/19 pas dans le colonne E du 03/09/19 crée
merci de votre aide
bien cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
16 sept. 2019 à 07:06
16 sept. 2019 à 07:06
Bonjour,
Pouvez_vous me montrer le code que vous avez écrit?
Cdlt
Pouvez_vous me montrer le code que vous avez écrit?
Cdlt
safach
Messages postés
252
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
13 mars 2021
2
16 sept. 2019 à 10:31
16 sept. 2019 à 10:31
Bonjour,
Sub transfert2()
Dim Ligne As Long
'desactive rafraichissement écran
Application.ScreenUpdating = False
mess = ""
ladate = CDate(Range("T1"))
'boucle sur les lignes de la feuille de production
For lg = 3 To 20
Windows("production.xlsm").Activate
'si designation non vide
If Range("D" & lg) <> "" Then
' nom de la piece
piece = Range("D" & lg)
'quantité à transferer
quantite = Range("U" & lg)
'cadence à transférer
cadence = Range("I" & lg)
'machine à transférer
machine = Range("B" & lg)
' active classeur suivi
Windows("suivi des livraisons.xlsm").Activate
exi = 0
'boucle sur les feuilles de suivi
For y = 1 To ActiveWorkbook.Sheets.Count
'si une feuille porte le nom de la piece exi=1
If ActiveWorkbook.Sheets(y).Name = piece Then exi = 1
Next y
' si exi=0 pas de correspondance - piece ajoutée au futur message d'erreur
If exi = 0 Then
mess = mess & piece & Chr(10)
'sinon recherche ligne de la date dans feuillede suivi et copie quantité
Else
ActiveWorkbook.Sheets(piece).Select
ActiveWorkbook.Sheets(piece).Range("G2") = cadence
ActiveWorkbook.Sheets(piece).Range("F2") = machine
Ligne = ActiveWorkbook.Sheets(piece).Columns(1).Find(DateValue(ladate), , , xlByColumns, xlPrevious).Row
ActiveWorkbook.Sheets(piece).Range("B" & Ligne) = quantite
End If
End If
Next lg
' message à afficher
If mess <> "" Then aff = "PIECES NON TRANSFEREES SUITE A ERREUR :" & Chr(10) & mess Else aff = "Transfert complet effectué"
MsgBox aff
' réactivation rafraichissement écran
Application.ScreenUpdating = True
End Sub
Sub transfert2()
Dim Ligne As Long
'desactive rafraichissement écran
Application.ScreenUpdating = False
mess = ""
ladate = CDate(Range("T1"))
'boucle sur les lignes de la feuille de production
For lg = 3 To 20
Windows("production.xlsm").Activate
'si designation non vide
If Range("D" & lg) <> "" Then
' nom de la piece
piece = Range("D" & lg)
'quantité à transferer
quantite = Range("U" & lg)
'cadence à transférer
cadence = Range("I" & lg)
'machine à transférer
machine = Range("B" & lg)
' active classeur suivi
Windows("suivi des livraisons.xlsm").Activate
exi = 0
'boucle sur les feuilles de suivi
For y = 1 To ActiveWorkbook.Sheets.Count
'si une feuille porte le nom de la piece exi=1
If ActiveWorkbook.Sheets(y).Name = piece Then exi = 1
Next y
' si exi=0 pas de correspondance - piece ajoutée au futur message d'erreur
If exi = 0 Then
mess = mess & piece & Chr(10)
'sinon recherche ligne de la date dans feuillede suivi et copie quantité
Else
ActiveWorkbook.Sheets(piece).Select
ActiveWorkbook.Sheets(piece).Range("G2") = cadence
ActiveWorkbook.Sheets(piece).Range("F2") = machine
Ligne = ActiveWorkbook.Sheets(piece).Columns(1).Find(DateValue(ladate), , , xlByColumns, xlPrevious).Row
ActiveWorkbook.Sheets(piece).Range("B" & Ligne) = quantite
End If
End If
Next lg
' message à afficher
If mess <> "" Then aff = "PIECES NON TRANSFEREES SUITE A ERREUR :" & Chr(10) & mess Else aff = "Transfert complet effectué"
MsgBox aff
' réactivation rafraichissement écran
Application.ScreenUpdating = True
End Sub
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
16 sept. 2019 à 11:06
16 sept. 2019 à 11:06
Arrêtez tout, je crois qu'on ne parle pas de la même chose.
Moi, ce que je comprends, c'est que dans la feuille "MODELE", il y a un bouton "Créer nouvelle feuille" qui lorsque l'on clique dessus ouvre un UserForm qui demande de saisir une date et lors de la validation cela crée une nouvelle feuille(si "feuille vierge" n'est pas coché) avec recopie des données de certaines colonnes de la dernière création.
Le programme lié à ce bouton de validation est dans le module du UserForm2, et c'est ce programme qui s'occupe de faire le nécessaire, création de la nouvelle feuille et recopie des cellules des colonnes demandées( H, D, E, I, J). De mon côté, je n'ai fais que le modifier pour l'adapter à votre demande.
Je n'ai jamais regardé la macro que vous me montrez, Comment la lancez-vous?
Pour qu'on se comprenne bien, je vois retourne votre fichier et faites des essais en cliquant sur le bouton "Créer nouvelle feuille" dans la feuille "MODELE". Peut-être qu'à partir de là on parlera de la même chose sinon on va tourner en rond encore longtemps. Si ce n'est pas ce que vous attendez, alors donnez un descriptif précis sur la façon dont vous procédez.
https://mon-partage.fr/f/CuTChd12/
Cdlt
Moi, ce que je comprends, c'est que dans la feuille "MODELE", il y a un bouton "Créer nouvelle feuille" qui lorsque l'on clique dessus ouvre un UserForm qui demande de saisir une date et lors de la validation cela crée une nouvelle feuille(si "feuille vierge" n'est pas coché) avec recopie des données de certaines colonnes de la dernière création.
Le programme lié à ce bouton de validation est dans le module du UserForm2, et c'est ce programme qui s'occupe de faire le nécessaire, création de la nouvelle feuille et recopie des cellules des colonnes demandées( H, D, E, I, J). De mon côté, je n'ai fais que le modifier pour l'adapter à votre demande.
Je n'ai jamais regardé la macro que vous me montrez, Comment la lancez-vous?
Pour qu'on se comprenne bien, je vois retourne votre fichier et faites des essais en cliquant sur le bouton "Créer nouvelle feuille" dans la feuille "MODELE". Peut-être qu'à partir de là on parlera de la même chose sinon on va tourner en rond encore longtemps. Si ce n'est pas ce que vous attendez, alors donnez un descriptif précis sur la façon dont vous procédez.
https://mon-partage.fr/f/CuTChd12/
Cdlt
safach
Messages postés
252
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
13 mars 2021
2
Modifié le 16 sept. 2019 à 11:46
Modifié le 16 sept. 2019 à 11:46
Rebonjour,
pour éviter toute confusion ci joint le document fonctionnel mais reste le problème suivant
je veux qu'au lieu de copier les colonnes E et I de la dernière création vers l'onglet crée, je veux copier le colonne I de la dernière création vers le colonne E de l'onglet crée
la copie des désignations , des cadences et de l'onglet "MODELE" est déja fait
merci beaucoup pour votre aide
bien cordialement
https://mon-partage.fr/f/hwyJQ28Z/
pour éviter toute confusion ci joint le document fonctionnel mais reste le problème suivant
je veux qu'au lieu de copier les colonnes E et I de la dernière création vers l'onglet crée, je veux copier le colonne I de la dernière création vers le colonne E de l'onglet crée
la copie des désignations , des cadences et de l'onglet "MODELE" est déja fait
merci beaucoup pour votre aide
bien cordialement
https://mon-partage.fr/f/hwyJQ28Z/
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
16 sept. 2019 à 12:04
16 sept. 2019 à 12:04
Vous me renvoyez le même fichier qu'au début, mais avez-vous testez le fichier que je vous ai retourné?
De plus vous n'avez pas répondu à ma question:
-concernant la macro "transfert2", Comment la lancez-vous? et donnez un descriptif précis sur la façon dont vous procédez.
De plus vous n'avez pas répondu à ma question:
-concernant la macro "transfert2", Comment la lancez-vous? et donnez un descriptif précis sur la façon dont vous procédez.
safach
Messages postés
252
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
13 mars 2021
2
16 sept. 2019 à 12:28
16 sept. 2019 à 12:28
oui je l'ai testé
https://mon-partage.fr/f/SVUwcu5G/
ça ne donne pas le résultat souhaité
en fait vous trouverez suivant ce deuxième lien un essai qui montre le résultat attendu sauf je veux modifier la copie des compteurs comme j'ai précédemment détaillé càd copier le colonne I de l'onglet 02/09/19 vers le colonne E de l'onglet 03/09/19
https://mon-partage.fr/f/pfLKm5K0/
https://mon-partage.fr/f/SVUwcu5G/
ça ne donne pas le résultat souhaité
en fait vous trouverez suivant ce deuxième lien un essai qui montre le résultat attendu sauf je veux modifier la copie des compteurs comme j'ai précédemment détaillé càd copier le colonne I de l'onglet 02/09/19 vers le colonne E de l'onglet 03/09/19
https://mon-partage.fr/f/pfLKm5K0/
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
17 sept. 2019 à 05:46
17 sept. 2019 à 05:46
Bonjour,
Désolé, je n'avais pas envoyé le bon fichier.
https://mon-partage.fr/f/Q7oPizNx/
Dans la nouvelle feuille, j'ai supprimer les données de la colonne I (qui sont maintenant en E)
dlt
Désolé, je n'avais pas envoyé le bon fichier.
https://mon-partage.fr/f/Q7oPizNx/
Private Sub CommandButton1_Click() Dim f1 As Worksheet, f2 As Worksheet, f3 As Worksheet Dim DerLig_f2 As Long Application.ScreenUpdating = False Set f1 = Sheets("MODELE") Set f3 = Sheets(4) 'copie feuille modele - place la copie en 3eme poistion et la renomme avec la date f1.Copy Before:=Sheets(3) Set f2 = Sheets("MODELE (2)") f2.Name = Day(ladate) & "-" & Month(ladate) & "-" & Year(ladate) - 2000 f2.Range("T1:X1").FormulaR1C1 = ladate 'si la case feuille vierge n'est pas cochée, boucle sur les lignes et copie données feuille précédente DerLig_f2 = f2.[A2].End(xlDown).Row If Me.vierge.Value = False Then f2.Range("E3:E" & DerLig_f2).Value = f3.Range("I3:I" & DerLig_f2).Value f2.Range("D3:D" & DerLig_f2).Value = f3.Range("D3:D" & DerLig_f2).Value f2.Range("J3:J" & DerLig_f2).Value = f3.Range("J3:J" & DerLig_f2).Value End If f2.Shapes("CommandButton1").Delete Unload UserForm2 Set f1 = Nothing Set f2 = Nothing Set f3 = Nothing End Sub
Dans la nouvelle feuille, j'ai supprimer les données de la colonne I (qui sont maintenant en E)
dlt
safach
Messages postés
252
Date d'inscription
jeudi 27 août 2015
Statut
Membre
Dernière intervention
13 mars 2021
2
17 sept. 2019 à 12:45
17 sept. 2019 à 12:45
Bonjour,
merci de votre réponse
mais ça donne le même résultat: la copie des fausses compteurs
le lien de mon essai
https://mon-partage.fr/f/7ZVhvoGP/
bien cordialement
merci de votre réponse
mais ça donne le même résultat: la copie des fausses compteurs
le lien de mon essai
https://mon-partage.fr/f/7ZVhvoGP/
bien cordialement
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
17 sept. 2019 à 15:26
17 sept. 2019 à 15:26
Désolé, mais ce n'est pas le dernier fichier que j'ai déposé dernièrement (voir post 11).