Excel vba erreur d'exécution

laraviole

XLDnaute Junior
Bonjour le forum,
Je viens une nouvelle fois demander votre aide pour un petit souci de macro.
J'ai une macro assez longue qui bug vers la fin quand il n'y a pas de donnée au moment ou elle vient pour les coller dans un autre fichier.
Range("O2:p2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Histo_Doublons.xls").Activate
Range("A65535").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Quand il y a des données pas de souci tout fonctionne bien
Quand il n'y a pas de données la macro sélectionne les 65535 lignes et ensuite au moment du collage elle me donne une ereur d'éxécution qui dit " impossible de coller les informations car les zones de copies et de collage sont de forme et de taille différentes"
L'idéal serait que quand il n'y a pas de données en "O2:p2", la sélection ne descende pas en 65535.
En espérant ne pas être trop confuse
Merci pour votre aide
Cordialement
Laraviole
 

Pierrot93

XLDnaute Barbatruc
Re : Excel vba erreur d'exécution

Bonjour,

essaye peut être un test comme ceci, si j'ai bien compris :
Code:
If Application.CountA(Range("O2:P2")) = 0 Then Exit Sub
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy

bon dimanche
@+
 

laraviole

XLDnaute Junior
Re : Excel vba erreur d'exécution

Bonjour Pierrot93
Merci pour ta réponse cela fontionne, seul inconvéniant c'est que la macro se termine alors qu'il faudrait qu'elle reprenne à la ligne rouge
Cordialement
Laraviole

If Application.CountA(Range("O2:p2")) = 0 Then Exit Sub
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
'Range(Selection, Selection.End(xlDown)).Select
'Selection.Copy
Windows("Histo_Doublons.xls").Activate
Range("A65535").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Range("C2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("C2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-2]&RC[-1]"
If [B65536].End(xlUp).Row > 1 Then _
Range("C2").AutoFill Destination:=Range("C2:C" & Range("B65536").End(xlUp).Row)
Range("A1").Select
ActiveWorkbook.Save
Windows("Doublons_Diffusion.xls").Activate Range("A1").Select
Sheets(Array("Feuil2", "Feuil3")).Select
Sheets("Feuil3").Activate
ActiveWindow.SelectedSheets.Delete
Sheets("Feuil1").Select
Sheets("Feuil1").Name = "Doublons"
Range("A1").Select
ActiveWorkbook.Save
ActiveWindow.Close
ActiveWindow.Close
Selection.AutoFilter
Range("A1").Select
ActiveWindow.Close
Range("A1").Select
Application.DisplayAlerts = True
MsgBox ("Traitement des doublons terminé")



End Sub
 

kjin

XLDnaute Barbatruc
Re : Excel vba erreur d'exécution

Bonjour,
Il suffit de tester
Code:
If Application.CountA(Range("O2:P2")) > 0 Then
'le code
End If
'la suite du code
Pour le reste, je pense que ce code pourrait être grandement optimisé...:eek:
A+
kjin
 

laraviole

XLDnaute Junior
Re : Excel vba erreur d'exécution

Bonsoir Kjin,
Je viens de tester et c'est super cela fonctionne
Je veux bien croire que le code peux être amélioré car je me suis servi d'excel en automatique pour l'écrire + quelques petits rajouts piochés par-ci, par là. Mais bon, cela fonctionne et me permet de gagner beaucoup de temps dans le traitement du fichier
Merci pour votre aide encore une fois le forum s'avère plus qu'efficace
Cordialement
Laraviole
 

Discussions similaires

Réponses
7
Affichages
328
Réponses
11
Affichages
437

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote