Copier à la suite et récupérer valeur
Amesam
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
Amesam Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Amesam Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'utilise cette macro pour coller plusieurs cellules à la suite.
Je cherche à récupérer sur ma première copie les cellules I16 et I17 et qu'elles viennent incrémenter un tableau sur la feuille Controle, par exemple en position M3 et M4. et idem pour la deuxième copie (soit I47 et I48) ect pour la troisième copie et ainsi de suite. Suis-je obliger d'écrire cellule par cellule
Cette liste peut-être très longue. Peut-être récupérer la dernière copie et une position ?
Je cherche aussi autre chose pour cette même feuille "Controle", mais surement bien plus compliqué !
Serait-il possible que ces copies se classes par ordre croissant par rapport à la cellule I17, I47, I77 ect
imaginons que j'ai en I77 la valeur 2 et en I17 la valeur 3 et en I47 la valeur 1 et que je veuille les remettre dans l'ordre, en gardant bien sur la totalité de la copie, est-ce possible ?
Merci.
J'utilise cette macro pour coller plusieurs cellules à la suite.
Sub MacroCopie()
Sheets("FICHE").Range("A1:K30").Copy
Sheets("Controle").Range("A1048576").End(xlUp).Offset(2).Select
ActiveSheet.Paste
End Sub
Je cherche à récupérer sur ma première copie les cellules I16 et I17 et qu'elles viennent incrémenter un tableau sur la feuille Controle, par exemple en position M3 et M4. et idem pour la deuxième copie (soit I47 et I48) ect pour la troisième copie et ainsi de suite. Suis-je obliger d'écrire cellule par cellule
Cette liste peut-être très longue. Peut-être récupérer la dernière copie et une position ?
Je cherche aussi autre chose pour cette même feuille "Controle", mais surement bien plus compliqué !
Serait-il possible que ces copies se classes par ordre croissant par rapport à la cellule I17, I47, I77 ect
imaginons que j'ai en I77 la valeur 2 et en I17 la valeur 3 et en I47 la valeur 1 et que je veuille les remettre dans l'ordre, en gardant bien sur la totalité de la copie, est-ce possible ?
Merci.
3 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonsoir, pour la première partie de ta question, il me semble qu'il serait plus simple de récupérer les deux valeurs dans FICHE, puisqu'elles sont toujours à un endroit fixe.
pour la seconde partie, c'est possible, en effet. ce serait même plus simple à faire si tu as toutes les valeurs (I17, I47, ...) dans un tableau. ou si il suffisait d'insérer la nouvelle copie au bon endroit, les anciennes étant déjà triées.
combien as-tu de blocs de 30 lignes au total, environ? -
Bonsoir,
Merci pour cette réponse.
Pour la première partie je ne peux pas extraire depuis la feuille FICHE.
Je m'explique : pour l'exemple donné je prends les cellules de FICHE que je copie dans Controle et je modifie dans Controle. Dans mon classeur plusieurs Controle qui sont en fait des clients, donc plusieurs feuille avec le nom des clients. FICHE et Controle sont pour l'exemple.
Combien de fiche et bien ça peut être plusieurs centaines pour certains et voir plusieurs milliers pour d'autres.
Voici un exemple :
https://cloudtag.io/hashtag/testxlsmccm
Merci.
Edit : J'ai pas réfléchit ! Je peux très bien modifier depuis FICHE ! -
En faisant ainsi ça fonctionne très bien, il faut que je supprime la mise en forme, si c'est bon.
Sub Copie_ACORUS() Sheets("FICHE").Range("A1:K30").Copy Sheets("Client1").Range("A1048576").End(xlUp).Offset(4).Select ActiveSheet.Paste ' Copie : Vos références Sheets("FICHE").Range("H12").Copy Sheets("Client1").Range("M1048576").End(xlUp).Offset(1).Select 'Selection.PasteAndFormat Type:=wdFormatPlainText ActiveSheet.Paste ' Copie : Type Sheets("FICHE").Range("F13").Copy Sheets("Client1").Range("N1048576").End(xlUp).Offset(1).Select ActiveSheet.Paste ' Copie : Désignation Sheets("FICHE").Range("F14").Copy Sheets("Client1").Range("O1048576").End(xlUp).Offset(1).Select ActiveSheet.Paste ' Copie : N° SERIE Sheets("FICHE").Range("I16").Copy Sheets("Client1").Range("P1048576").End(xlUp).Offset(1).Select ActiveSheet.Paste ' Copie : Vos N° INTERNE Sheets("FICHE").Range("I17").Copy Sheets("Client1").Range("Q1048576").End(xlUp).Offset(1).Select ActiveSheet.Paste ' Copie : Anomalies Sheets("FICHE").Range("A27").Copy Sheets("Client1").Range("R1048576").End(xlUp).Offset(1).Select ActiveSheet.Paste End Sub
Pour le tri des fiches je n'ai aucune idée.
Merci.
Edit : J'ai trouvé pour la copie sans mise en forme.
Sub Copie_ACORUS() Sheets("FICHE").Range("A1:K30").Copy Sheets("Client1").Range("A1048576").End(xlUp).Offset(4).Select ActiveSheet.Paste 'Copie : Vos références Sheets("FICHE").Range("H12").Copy Sheets("Client1").Range("M1048576").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues I = ActiveSheet.UsedRange.Rows.Count Cells(I + 1, 1).PasteSpecial (xlPasteValues) ' Copie : Type Sheets("FICHE").Range("F13").Copy Sheets("Client1").Range("N1048576").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues I = ActiveSheet.UsedRange.Rows.Count Cells(I + 1, 1).PasteSpecial (xlPasteValues) ' Copie : Désignation Sheets("FICHE").Range("F14").Copy Sheets("Client1").Range("O1048576").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues I = ActiveSheet.UsedRange.Rows.Count Cells(I + 1, 1).PasteSpecial (xlPasteValues) ' Copie : N° SERIE Sheets("FICHE").Range("I16").Copy Sheets("Client1").Range("P1048576").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues I = ActiveSheet.UsedRange.Rows.Count Cells(I + 1, 1).PasteSpecial (xlPasteValues) ' Copie : Vos N° INTERNE Sheets("FICHE").Range("I17").Copy Sheets("Client1").Range("Q1048576").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues I = ActiveSheet.UsedRange.Rows.Count Cells(I + 1, 1).PasteSpecial (xlPasteValues) ' Copie : Anomalies Sheets("FICHE").Range("A27").Copy Sheets("Client1").Range("R1048576").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues I = ActiveSheet.UsedRange.Rows.Count Cells(I + 1, 1).PasteSpecial (xlPasteValues) Application.CutCopyMode = False End Sub
Bon plus qu'a trier le premier copiage dans le feuille Client.
Merci :o)