Bug dans la fonction copier/coller

Bonjour

Toujours à partir de vos aides antérieures, j'ai monter cette petite application que je veux simple car je crois qu'on me demandera des modifications dans le futur. Donc, si elle demeure simple, je vais comprendre les formulations et pourrais effectuer les changements potentiels futurs.

Voir le fichier joint.

Après quelques exécution de la macro, bien que le résultat fini par arriver, il y a un laps de temps important. Ou est mon erreur. De plus j'aimerais lors de l'exécution "Ecrire" pouvoir faire un coller valeur mais ...

Merci encore de votre aide!

Sub Ecrire2()

Dim ligne As Byte: Dim col As Byte: Dim colus As Byte

Dim derlig As Integer

colus = 1

Sheets("Data").Select

derlig = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row + 1

For ligne = 2 To 9

For col = 2 To 3

Worksheets("Saisie").Cells(ligne, col).Copy Worksheets("Data").Cells(derlig, colus)

colus = colus + 1

Next col

Next ligne

For ligne = 11 To 13

For col = 2 To 5

Worksheets("Saisie").Cells(ligne, col).Copy Worksheets("Data").Cells(derlig, colus)

colus = colus + 1

Next col

Next ligne

Sheets("saisie").Select

End Sub

Sub lire3()

Dim ligne As Byte: Dim col As Byte: Dim colus As Byte: Dim ligus As Byte: Dim cellX As Range: Dim dv As Long: Dim k As Byte: Dim i As Byte: Dim NS As String, dlig As Long

colus = 1

ligus = 20

If [f1] = "" Then Exit Sub

With Worksheets("Data")

Set cellX = .[A2]: dlig = .Cells(Rows.Count, 1).End(xlUp).Row

End With

If dlig < 2 Then k = 2: Exit Sub

NS = [Saisie!f1]: k = 0 ' NS : n° de la soumission à chercher

For dv = 0 To dlig - 1

If cellX.Offset(dv) = NS Then k = 1

Next dv

Application.ScreenUpdating = False: Application.Calculation = -4135]

Dim lig As Long, n As Byte

For ligne = 2 To 9

For col = 12 To 13

Worksheets("Data").Cells(dv, colus).Copy Worksheets("Saisie").Cells(ligne, col)

colus = colus + 1

Next col

Next ligne

For ligne = 11 To 13

For col = 12 To 15

Worksheets("Data").Cells(dv, colus).Copy Worksheets("Saisie").Cells(ligne, col)

colus = colus + 1

Next col

Next ligne

End Sub

1test2.xlsm (26.60 Ko)

Bonjour,

Concernant tes macros ... il faut supprimer tous les .Select

Concernant l'usage du Forum ... il faut utiliser les balises Code ... Bouton N°5 photo jointe ...

balise code

Ok pour les codes (voir ci-bas) Merci!

Par contre si j'enlève les .select ca ne fonctionne plus (voir code ci-bas)

Et aussi comment faire les copier/coller valeur?

Sub Ecrire2()

Dim ligne As Byte: Dim col As Byte: Dim colus As Byte
Dim derlig As Integer
colus = 1
Sheets ("Data")
derlig = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row + 1

For ligne = 2 To 9
    For col = 2 To 3
        Worksheets("Saisie").Cells(ligne, col).Copy Worksheets("Data").Cells(derlig, colus)
      colus = colus + 1
    Next col
Next ligne
For ligne = 11 To 13
    For col = 2 To 5
        Worksheets("Saisie").Cells(ligne, col).Copy Worksheets("Data").Cells(derlig, colus)
      colus = colus + 1
    Next col
Next ligne
Sheets ("saisie")
End Sub

Re,

Merci pour les Balises Code ... cela soulage les yeux de tout le monde ...

Concernant tes macros ... je vais y jeter un oeil ...

Re,

Comme convenu ... j'ai effectué un petit nettoyage de tes macros ...

Est-ce-que l'éxécution est normale ...???

Merci James007,

Je constate bien mes erreurs dans les formulations. Concernant le copier valeur, j'essaie de l'imbriquer dans la macro "Ecrire" mais cela ne fonctionne pas.

Ex

For col = 2 To 3
          Worksheets("Saisie").Cells(ligne, col).Copy Destination:=Worksheets("Data").Cells(derlig, colus).PasteSpecial(xlPasteValues)

          colus = colus + 1
        Next col

Ou bien

Worksheets("Saisie").Cells(ligne, col).Copy Destination:=Worksheets("Data").Cells(derlig, colus).PasteSpecial :=xlPasteValues

Ou et comment dois-je intégre le collage valeur?

De rien ...

Content que les macros fonctionnent ...

Concernant ta deuxième question ... je ne vois aucune formule pour laquelle il ne faudrait copier que la valeur ...

Cela dit ... si tu devais avoir besoin de copier les valeurs ... tu pourrais tester :

Worksheets("Data").Cells(derlig, colus).Value = Worksheets("Saisie").Cells(ligne, col).Value

Merci encore du suivi James

Je ne veux pas que les données conservent leur format d'origine après le transfert vers l'onglet Data. Pour cette raison que je crois qu'un collage valeur serai de mise.

Oups, je viens de voir ta proposition, je l'essaie

Re,

De rien ...

En espèrant que cela t'aide ...

Ben non, cela ne fonctionne pas. Erreur d’exécution, La méthode de Copy de la classe range a échoué!

Merci pour ta futur proposition

Voila ce que j'ai fait

For ligne = 2 To 9
        For col = 2 To 3
          Worksheets("Saisie").Cells(ligne, col).Copy Destination:=Worksheets("Data").Cells(derlig, colus).Value
          colus = colus + 1
        Next col
    Next ligne
    For ligne = 11 To 13
        For col = 2 To 5
          Worksheets("Saisie").Cells(ligne, col).Copy Destination:=Worksheets("Data").Cells(derlig, colus).Value
          colus = colus + 1
        Next col
    Next ligne
andreleca a écrit :

Ben non, cela ne fonctionne pas. Erreur d’exécution, La méthode de Copy de la classe range a échoué!

Merci pour ta futur proposition

Re,

De quelle macro ... parles-tu ...???

Il n'y a pas plus de Copy ... dans l'instruction que je viens de te communiquer ...!!!

Peux-tu poster ton code ... ou encore mieux la dernière version de ton fichier ....???


Re,

Je pense que tu n'as fait attention à mon message précédent ...

James007 a écrit :

Cela dit ... si tu devais avoir besoin de copier les valeurs ... tu pourrais tester :

Worksheets("Data").Cells(derlig, colus).Value = Worksheets("Saisie").Cells(ligne, col).Value

Comme je viens de te le préciser .... aucune trace de Copy ...

Bonjour James007

Voici le fichier modifié joint. Effectivement dans ta proposition le terme Copy n'y apparaît pas. Par contre je croyait que la formule suivante

Worksheets("Saisie").Cells(ligne, col).Copy Destination:=Worksheets("Data").Cells(derlig, colus).Value

était un genre de copy.

Maintenant ce que j'aimerais, c'est qu'une fois les chiffres transférés à l'onglet Data, ils ne conservent pas leur format initiale.

Merci encore James!

Bonjour andreleca,

Je te propose le fichier Excel ci-dessous.

Merci de me dire si ça te convient.

Cordialement

andreleca a écrit :

Bonjour James007

Voici le fichier modifié joint. Effectivement dans ta proposition le terme Copy n'y apparaît pas. Par contre je croyait que la formule suivante

Worksheets("Saisie").Cells(ligne, col).Copy Destination:=Worksheets("Data").Cells(derlig, colus).Value

était un genre de copy.

Maintenant ce que j'aimerais, c'est qu'une fois les chiffres transférés à l'onglet Data, ils ne conservent pas leur format initiale.

Merci encore James!

Bonjour,

Je ne comprends pas très bien l'obstacle ...

Ci-joint ta version 3 ...

Bonjour andreleca,

Je joins ci-dessous un nouveau fichier Excel ; j'ai corrigé un oubli d'effacement de données, ceci dans la sub lire3(),

voir la ligne qui est juste avant le End With.

⚠ Note bien que le 1er nombre qui doit être écrit en feuille 2, dernière ligne, doit forcément être le n° qui est

en feuille 1, cellule F1 ; ceci car la lecture devra le rechercher pour lire toutes les autres données associées ;

c'est juste une coïncidence si dans tes données de départ, B2 = F1 (= 130) ; c'est pour ça que j'ai remplacé

en B2 130 par 100, pour éviter toute confusion possible : c'est bien le 130 de F1 qui doit être recherché.

Merci de me donner ton avis.

Cordialement

Bonjour,

Si je ne trompe pas ... tu as téléchargé plusieurs fois la Version 3 ...

Il ne faut pas hésiter à faire part de tes commentaires ...

Bonjour James,

J'aime bien ton côté ironique Honnêtement je n'avais pas regardé ta dernière proposition car on m'a imposé des changements dans les besoins initiaux. En fin de semaine (dimanche) j'analyse vos propositions et tente de les adapter à la dernière version imposé. Merci beaucoup de votre aide!! Je vous tiens au courant.

andreleca a écrit :

Bonjour James,

J'aime bien ton côté ironique Honnêtement je n'avais pas regardé ta dernière proposition car on m'a imposé des changements dans les besoins initiaux. En fin de semaine (dimanche) j'analyse vos propositions et tente de les adapter à la dernière version imposé. Merci beaucoup de votre aide!! Je vous tiens au courant.

Bonjour,

Au cas où l'adaptation à la dernière version le nécessiterait ... tu trouveras toujours le support sur le Forum ...

Vos deux propositions fonctionnent, j'ai fait un mixte de vos proposition et çà fonctionne aussi. J'ai un autre petit problème concernant ce fichier, qui ne concerne pas vos suggestions, s'il y a, je mettrai un nouveau post.

Merci beaucoup James et Dhany.

Bonjour andreleca,

Merci pour tes remerciements, et pour avoir passé le sujet en résolu !

si tu mets un nouveau post, je ne manquerai pas de le lire.

bonne continuation et bonne chance !

Cordialement

Rechercher des sujets similaires à "bug fonction copier coller"