Copier/coller des colonnes sans les cellules vides

Fermé
Titia974 - 20 mars 2014 à 09:00
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014 - 20 mars 2014 à 18:18
Bonjour,

Je me tourne une nouvelle fois vers vous car j'ai un problème. J'aimerais copier/coller certaines colonne de ma 1ère feuille vers une autre feuille sans les cellules vides. J'ai créé une macro mais dès qu'une colonne est vide il y a un bug. Voici ma macro :
Sub Commentaires()
'
' Commentaires Macro
'

'
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 27
ActiveWindow.ScrollRow = 30
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 164
ActiveWindow.ScrollRow = 172
ActiveWindow.ScrollRow = 242
ActiveWindow.ScrollRow = 249
ActiveWindow.ScrollRow = 317
ActiveWindow.ScrollRow = 318
ActiveWindow.ScrollRow = 365
ActiveWindow.ScrollRow = 371
ActiveWindow.ScrollRow = 411
ActiveWindow.ScrollRow = 412
ActiveWindow.ScrollRow = 435
ActiveWindow.ScrollRow = 436
ActiveWindow.ScrollRow = 448
ActiveWindow.ScrollRow = 450
ActiveWindow.ScrollRow = 459
ActiveWindow.ScrollRow = 460
ActiveWindow.ScrollRow = 465
ActiveWindow.ScrollRow = 467
ActiveWindow.ScrollRow = 478
ActiveWindow.ScrollRow = 479
ActiveWindow.ScrollRow = 484
ActiveWindow.ScrollRow = 487
Range("K3:K502").Select
Selection.SpecialCells(xlCellTypeConstants, 3).Select
Selection.Copy
Sheets("Commentaires").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie").Select
ActiveWindow.SmallScroll Down:=-15
Range("N3").Select
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 45
ActiveWindow.ScrollRow = 54
ActiveWindow.ScrollRow = 117
ActiveWindow.ScrollRow = 124
ActiveWindow.ScrollRow = 225
ActiveWindow.ScrollRow = 236
ActiveWindow.ScrollRow = 335
ActiveWindow.ScrollRow = 346
ActiveWindow.ScrollRow = 389
ActiveWindow.ScrollRow = 390
ActiveWindow.ScrollRow = 412
ActiveWindow.ScrollRow = 414
ActiveWindow.ScrollRow = 432
ActiveWindow.ScrollRow = 433
ActiveWindow.ScrollRow = 450
ActiveWindow.ScrollRow = 451
ActiveWindow.ScrollRow = 463
ActiveWindow.ScrollRow = 464
ActiveWindow.ScrollRow = 481
ActiveWindow.ScrollRow = 482
ActiveWindow.ScrollRow = 494
Range("N3:N502").Select
Selection.SpecialCells(xlCellTypeConstants, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Commentaires").Select
Range("B6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A14").Select
Sheets("Saisie").Select
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 15
ActiveWindow.SmallScroll Down:=-18
Range("T3").Select
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 69
ActiveWindow.ScrollRow = 79
ActiveWindow.ScrollRow = 191
ActiveWindow.ScrollRow = 202
ActiveWindow.ScrollRow = 325
ActiveWindow.ScrollRow = 339
ActiveWindow.ScrollRow = 430
ActiveWindow.ScrollRow = 437
ActiveWindow.ScrollRow = 482
ActiveWindow.ScrollRow = 489
ActiveWindow.ScrollRow = 495
Range("T3:T502").Select
Selection.SpecialCells(xlCellTypeConstants, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Commentaires").Select
Range("C6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B11").Select
Sheets("Saisie").Select
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.SmallScroll Down:=-15
Range("Y3").Select
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 25
ActiveWindow.ScrollRow = 32
ActiveWindow.ScrollRow = 137
ActiveWindow.ScrollRow = 152
ActiveWindow.ScrollRow = 271
ActiveWindow.ScrollRow = 281
ActiveWindow.ScrollRow = 368
ActiveWindow.ScrollRow = 377
ActiveWindow.ScrollRow = 429
ActiveWindow.ScrollRow = 430
ActiveWindow.ScrollRow = 480
ActiveWindow.ScrollRow = 481
ActiveWindow.ScrollRow = 493
ActiveWindow.ScrollRow = 494
ActiveWindow.ScrollRow = 495
Range("Y3:Y502").Select
Selection.SpecialCells(xlCellTypeConstants, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Commentaires").Select
Range("D6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Saisie").Select
ActiveWindow.SmallScroll ToRight:=5
ActiveWindow.SmallScroll Down:=-15
Range("AA3").Select
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 46
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 148
ActiveWindow.ScrollRow = 161
ActiveWindow.ScrollRow = 279
ActiveWindow.ScrollRow = 286
ActiveWindow.ScrollRow = 346
ActiveWindow.ScrollRow = 352
ActiveWindow.ScrollRow = 387
ActiveWindow.ScrollRow = 393
ActiveWindow.ScrollRow = 440
ActiveWindow.ScrollRow = 441
ActiveWindow.ScrollRow = 462
ActiveWindow.ScrollRow = 463
ActiveWindow.ScrollRow = 478
ActiveWindow.ScrollRow = 479
ActiveWindow.ScrollRow = 481
ActiveWindow.ScrollRow = 482
ActiveWindow.ScrollRow = 484
Range("AA3:AA502").Select
Selection.SpecialCells(xlCellTypeConstants, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Commentaires").Select
Range("E6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F6").Select
Sheets("Saisie").Select
ActiveWindow.SmallScroll Down:=-9
Range("AB3").Select
ActiveWindow.SmallScroll Down:=18
ActiveWindow.ScrollRow = 21
ActiveWindow.ScrollRow = 46
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 137
ActiveWindow.ScrollRow = 156
ActiveWindow.ScrollRow = 269
ActiveWindow.ScrollRow = 277
ActiveWindow.ScrollRow = 372
ActiveWindow.ScrollRow = 373
ActiveWindow.ScrollRow = 401
ActiveWindow.ScrollRow = 410
ActiveWindow.ScrollRow = 451
ActiveWindow.ScrollRow = 452
ActiveWindow.ScrollRow = 465
ActiveWindow.ScrollRow = 467
ActiveWindow.ScrollRow = 474
ActiveWindow.ScrollRow = 475
ActiveWindow.ScrollRow = 476
ActiveWindow.ScrollRow = 478
ActiveWindow.ScrollRow = 481
ActiveWindow.ScrollRow = 483
Range("AB3:AB502").Select
Selection.SpecialCells(xlCellTypeConstants, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Commentaires").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G11").Select
End Sub

Serait-il possible de m'aider car je n'arrive pas à trouver de solutions.

Merci d'avance.
A voir également:

18 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 mars 2014 à 14:15
J'ai associé la procédure au bouton "COMMENTAIRES".
Quand tu cliques sur ce bouton, qu'est-ce qui se passe ?

https://www.cjoint.com/?DCuonTQQawj

A+
1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 mars 2014 à 17:14
A priori, si le programme ne passe jamais par la ligne
"Sheets("Commentaires").Cells(6, i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False"

c'est qu'une erreur est générée par l'instruction
.Range(C(i)).SpecialCells(xlCellTypeConstants, 3).Copy

Avec ce code modifié, tu pourras visualiser cette erreur
Option Explicit
Option Base 1
Sub Commentaires()
Dim C
Dim i As Integer
Dim Msg As String
With Sheets("Saisie")
C = Array("K3:K502", "N3:N502", "T3:T502", "Y3:T502", "AA3;AA502", "AB3:AB502")
On Error Resume Next
For i = 1 To UBound(C)
.Range(C(i)).SpecialCells(xlCellTypeConstants, 3).Copy
If Err.Number = 0 Then
Sheets("Commentaires").Cells(6, i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Else
Msg = "L'erreur # " & Str(Err.Number) & " a été générée par " _
& Err.Source
MsgBox Msg, , "Erreur", Err.HelpFile, Err.HelpContext
Err.Clear
End If
Next i
Application.CutCopyMode = False
End With
End Sub

J'ai du mal à comprendre puisque l'on fait tourner le même programme sur les mêmes données.
Quelle est ta version Excel (Excel 2007 de mon coté) ?

A+
1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 mars 2014 à 17:47
Essaie de désactiver Eurotool

Clic sur l'icône Office > Options Excel
Compléments > Gérer Compléments Excel \ Atteindre
Désactive le complément Eurotool.xlam
Clic sur OK


A+
1
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 mars 2014 à 17:56
Décoche, décoche .... :D
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
20 mars 2014 à 09:23
Bonjour,

Peux-tu enlever tous les ActiveWindow.ScrollRow dans ta question (et dans ta macro) ? ça alourdit et ne sert pas (ça correspond à l'action sur la roulette).

A+
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 mars 2014 à 10:26
Bonjour,

Une solution avec gestion de l'erreur
Option Explicit
Option Base 1
Sub Commentaires()
Dim C
Dim i As Integer
With Sheets("Saisie")
C = Array("K3:K502", "N3:N502", "T3:T502", "Y3:Y502", "AA3:AA502", "AB3:AB502")
On Error Resume Next
For i = 1 To UBound(C)
Range(C(i)).SpecialCells(xlCellTypeConstants, 3).Copy
If Err.Number = 0 Then
Sheets("Commentaires").Cells(6, i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Else
Err.Clear
End If
Next i
Application.CutCopyMode = False
End With
End Sub

A+
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
20 mars 2014 à 11:37
Merci de l'aide mais lorsque je tape :
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Il me dit :
"Erreur de compilation:
Attendu : Expression"

Et le texte se met en rouge.

Pourrais-tu m'éclairer ?

Merci d'avance.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
20 mars 2014 à 11:40
Supprime le saut de ligne après PasteSpecial
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
Modifié par Titia_974 le 20/03/2014 à 11:53
J'ai bien entré cette macro :
Option Explicit
Option Base 1
Sub Commentaires()
Dim C
Dim i As Integer
With Sheets("Saisie")
C = Array("K3:K502", "N3:N502", "T3:T502", "Y3:T502", "AA3;AA502", "AB3:AB502")
On Error Resume Next
For i = 1 To UBound(C)
Range(C(i)).SpecialCells(xlCellTypeConstants, 3).Copy
If Err.Number = 0 Then
Sheets("Commentaires").Cells(6, i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Else
Err.Clear
End If
Next i
Application.CutCopyMode = False
End With
End Sub

Mais lorsque que je fais "play" rien ne se passe. Comment ça se fait ?
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 mars 2014 à 12:32
Peux-tu joindre un fichier exemple avec https://www.cjoint.com/ ?

A+
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
20 mars 2014 à 13:07
Voici l'adresse pour le fichier exemple :
https://www.cjoint.com/?3CungS5z3CR

Merci pour tout.
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 mars 2014 à 13:43
A tester.
J'ai ajouté un petit point devant
Range(C(i)).SpecialCells(xlCellTypeConstants, 3).Copy

https://www.cjoint.com/?DCunQneWLSW

A+
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
20 mars 2014 à 13:55
Maintenant plus rien ne se passe. Lorsque je fais play, il n'y a rien.

Que dois-je faire ?

Merci beaucoup.
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
20 mars 2014 à 16:31
Il ne se passe rien même avec le bouton. :(
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
20 mars 2014 à 16:41
As-tu activé les macros ?!
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 mars 2014 à 16:39
Et quand tu lances la macro en pas à pas détaillé ?
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
20 mars 2014 à 16:46
Oui les macros sont bien activées. Et lorsque je fais en pas à pas détaillé il me surligne en jaune pas à pas les lignes de la macro sauf pour :
"Dim C
Dim i As Integer"

"Sheets("Commentaires").Cells(6, i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False"

"Application.CutCopyMode = False
End With
End Sub"
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
20 mars 2014 à 17:24
Ma version est comme la tienne : Excel 2007.
Après avoir repris ta dernière macro voilà ce qu'il me dit :
"L'erreur # a été générée par EuroTool"
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
20 mars 2014 à 17:30
Plus précisément :
- "L'erreur # 9 a été généré par EuroTool"
- "L'erreur # 9 a été générée par EuroTool"
- "L'erreur # 1004 a été générée par Microsoft Office Excel"
- "L'erreur # 1004 a été générée par Microsoft Office Excel"
- "L'erreur # 1004 a été générée par VBA Project"
- "L'erreur # 9 a été générée par EuroTool

Et voilà ! :(
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
20 mars 2014 à 17:51
Je n'ai pas Eurotool.xlam dans les macros complémentaires. Par contre j'ai "outils pour l'euro qui est coché".
0
Titia_974 Messages postés 21 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 14 avril 2014
20 mars 2014 à 18:18
Ca marche !!!! :D

Merci merci merci :)
0