Excel : Copier des cellules liées
Résolu/Fermé
A voir également:
- Excel : Copier des cellules liées
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
13 réponses
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
Modifié par eriiic le 2/04/2010 à 07:55
Modifié par eriiic le 2/04/2010 à 07:55
Bonjour,
Malgré ton exemple je pense avoir compris :
La prochaine fois tu peux déposer un fichier sur cijoint.fr et coller ici le lien fourni
eric
edit : et merci d'éviter les doublons : voir ici
Malgré ton exemple je pense avoir compris :
Sub supp() Dim lig As Long For lig = [A65536].End(xlUp).Row To 2 Step -1 If Cells(lig, 1) = 0 Then Cells(lig, 1).Resize(1, 2).Delete Shift:=xlUp Next lig End Sub
La prochaine fois tu peux déposer un fichier sur cijoint.fr et coller ici le lien fourni
eric
edit : et merci d'éviter les doublons : voir ici
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oups, j'ai parlé un peu trop vite comme toujours...
En fait cette macro fonctionne trés bien sur une dizaine de données mais je travaille actuellement avec plus de 20 000 valeurs dans la colonne A sachant que dans celle ci il doit y avoir au mloins 10 000 zéro.
Et lorsque je lance la macro sur mes 20 000 valeurs le processus est trop long et mon ordi plante.
Donc te serait il possible d'avoir la méme chose mais applicable à un nombre plus important de valeurs?
Emilie
En fait cette macro fonctionne trés bien sur une dizaine de données mais je travaille actuellement avec plus de 20 000 valeurs dans la colonne A sachant que dans celle ci il doit y avoir au mloins 10 000 zéro.
Et lorsque je lance la macro sur mes 20 000 valeurs le processus est trop long et mon ordi plante.
Donc te serait il possible d'avoir la méme chose mais applicable à un nombre plus important de valeurs?
Emilie
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
2 avril 2010 à 16:46
2 avril 2010 à 16:46
Il ne plante pas, mais c'est long et il faut attendre...
Cette version sera plus rapide mais pareil, laisse la finir...
Sub supp()
Dim lig As Long
application.screenupdating = false
For lig = [A65536].End(xlUp).Row To 2 Step -1
If Cells(lig, 1) = 0 Then Cells(lig, 1).Resize(1, 2).Delete Shift:=xlUp
Next lig
application.screenupdating = true
End Sub
eric
Cette version sera plus rapide mais pareil, laisse la finir...
Sub supp()
Dim lig As Long
application.screenupdating = false
For lig = [A65536].End(xlUp).Row To 2 Step -1
If Cells(lig, 1) = 0 Then Cells(lig, 1).Resize(1, 2).Delete Shift:=xlUp
Next lig
application.screenupdating = true
End Sub
eric
Ok, je vais la tester sur mes valeurs.
Merci.
Merci.
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
2 avril 2010 à 18:32
2 avril 2010 à 18:32
et mike t'a répondu sur ton autre post, ça serait bien que tu lui répondes...
Si tout est ok mets les 2 discussions en résolu stp
Merci
Si tout est ok mets les 2 discussions en résolu stp
Merci
Oui, cette version fonctionne également mais elle est trop longue à tourner.
En effet, elle met bien 1h avant d'afficher les résultats.
Est ce que l'un d'entre vous n'aurez pas une idée pour accélérer d'avantage le processus?
Emilie
En effet, elle met bien 1h avant d'afficher les résultats.
Est ce que l'un d'entre vous n'aurez pas une idée pour accélérer d'avantage le processus?
Emilie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 6/04/2010 à 09:59
Modifié par michel_m le 6/04/2010 à 09:59
Bonjour Emilie, Eric, Mike
en me basant sur ce que j'ai pigé
la colonne B est remplie avec les données de la colonne A sans les zéros (version Mike?)?
Si oui sur 20000 lignes en moins d'une seconde
tite démo
https://www.cjoint.com/?egj4m5sSHS
en esperant ne pas ^tre à coté de la plaque mais je doute...
eddit: on pourrait encore aller + vite avec un screenupdating oublié...
:-x
en me basant sur ce que j'ai pigé
la colonne B est remplie avec les données de la colonne A sans les zéros (version Mike?)?
Si oui sur 20000 lignes en moins d'une seconde
Sub lister_sans_0() Dim derlig As Long Dim tablo derlig = Range("A65536").End(xlUp).Row ReDim tablo(0) For Cptr = 1 To derlig If Cells(Cptr, 1) <> 0 Then tablo(cptr_T) = Cells(Cptr, 1) cptr_T = cptr_T + 1 ReDim Preserve tablo(cptr_T) End If Next Columns(2).ClearContents Range("B1").Resize(cptr_T + 1, 1) = Application.Transpose(tablo) End Sub
tite démo
https://www.cjoint.com/?egj4m5sSHS
en esperant ne pas ^tre à coté de la plaque mais je doute...
eddit: on pourrait encore aller + vite avec un screenupdating oublié...
:-x
Non ce n'est pas exactement ce que tu subjére. En fait j'ai 2 colonnes A et B avec dans la colonne A des 0 et d'autres valeurs. Je souhaiterai que la macro supprime les 0 en décallant les cellules vers le haut du nombre de 0 supprimer tout en gardant le contenu de la cellule situé en colonne B qui li est associé.
Par exemple en A2 j'ai 2, en A3 - 0 et en A4 - 6 avec en B3 - MM et en B4 - MM. Je voudrai obtenir en A2 - 2 et B2 - ; A3 - 6 et B3 - MM.
J'espére que mes explications seront suffisantes.
Emilie
Par exemple en A2 j'ai 2, en A3 - 0 et en A4 - 6 avec en B3 - MM et en B4 - MM. Je voudrai obtenir en A2 - 2 et B2 - ; A3 - 6 et B3 - MM.
J'espére que mes explications seront suffisantes.
Emilie
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 6/04/2010 à 11:30
Modifié par michel_m le 6/04/2010 à 11:30
..."J'espére que mes explications seront suffisantes"....
bin non! les 2 demandes sont différentes: j'ai suivi ,ou cru suivre, l'autre post
comme te l'a déjà demandé Eric met une maquette (quelques lignes) en pièce jointe avec d'un coté le tableau initial et d'un autre coté le tableau que tu désires en nous précisant les emplacements de départ et d'arrivée dans ton projet réel
Pour mettre une pièce jointe:
https://www.cjoint.com/
et tu colles le lien proposé dans ton message
bin non! les 2 demandes sont différentes: j'ai suivi ,ou cru suivre, l'autre post
comme te l'a déjà demandé Eric met une maquette (quelques lignes) en pièce jointe avec d'un coté le tableau initial et d'un autre coté le tableau que tu désires en nous précisant les emplacements de départ et d'arrivée dans ton projet réel
Pour mettre une pièce jointe:
https://www.cjoint.com/
et tu colles le lien proposé dans ton message
https://www.cjoint.com/?eglKaTCuu5
Voici le lien contenant l'exemple, avec en colonne A et B les données sources et en colonne C et D ce que je souhaiterai obtenir.
En espérant que cela soit compréhensible!
Emilie.
Voici le lien contenant l'exemple, avec en colonne A et B les données sources et en colonne C et D ce que je souhaiterai obtenir.
En espérant que cela soit compréhensible!
Emilie.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
6 avril 2010 à 12:15
6 avril 2010 à 12:15
en espèrant que... temps <= 2 secondes
et la demo chronm^tre:
https://www.cjoint.com/?egmodTCzxR
Tu dis...
Sub lister_sans_0() Dim derlig As Integer, cptr As Integer, cptr_t As Integer Dim tablo 'initialisations derlig = Range("A65536").End(xlUp).Row ReDim tablo(1, 0) 'colecte des données For cptr = 2 To derlig If Cells(cptr, 1) <> 0 Then tablo(0, cptr_t) = Cells(cptr, 1) tablo(1, cptr_t) = Cells(cptr, 2) cptr_t = cptr_t + 1 ReDim Preserve tablo(1, cptr_t) End If Next 'restitution Application.ScreenUpdating = False Range("C2:D30000").ClearContents Range("C2").Resize(cptr_t + 1, 2) = Application.Transpose(tablo) Application.ScreenUpdating = True End Sub
et la demo chronm^tre:
https://www.cjoint.com/?egmodTCzxR
Tu dis...