Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème avec "If, Then, Else"

  • Initiateur de la discussion Quaisako
  • Date de début
Q

Quaisako

Guest
Bonsoir le Forum,

Dans le code ci-dessous, si je désactive "Else: Range("A6").End(xlDown).Offset(1, 0).Select", tout va bien.

Sinon le code plante.

Si quelqu'un peut m'expliquer........

Merci d'avance Quaisako

Private Sub CommandButton2_Click()
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Selection.Copy
ChDir "C:\WINDOWS\Bureau\SMDOmniSport\"
Workbooks.Open Filename:="C:\WINDOWS\Bureau\SMDOmniSport\Récap.xls"
Sheets("Détail").Activate
If Range("A6").Value = "" Then
Range("A6").Select
Else: Range("A6").End(xlDown).Offset(1, 0).Select
End If
ActiveSheet.Paste
Windows("Récap.XLS").Activate
Application.CutCopyMode = False
Windows("Récap.XLS").Close
End Sub
 
Q

Quaisako

Guest
Bonsoir @Christophe@, re le Forum,

Résultat après modif:

Erreur d'exécution 1004
La méthode Select de la classe Range a échoué.

Pas terrible, hein!!! ))

Si tu as une autre méthode pour tester si la copie a déjà été faite dans le classeur "Récap", n'hésites pas.

Bonne nuit Quaisako
 
S

steplof

Guest
Salut @tous

Quaisako, chez moi le code suivant fonctionne:

Private Sub CommandButton1_Click()
chemin = ThisWorkbook.Path


Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Selection.Copy
'ChDir "C:\WINDOWS\Bureau\SMDOmniSport\"
Workbooks.Open Filename:=chemin & "\Récap.xls"
Sheets("Detail").Activate
If Range("A6").Value = "" Then
Sheets("Detail").Range("A6").Select
Else: Sheets("Detail").Range("A6").End(xlDown).Offset(1, 0).Select
End If
ActiveSheet.Paste
Windows("Récap.XLS").Activate
Application.CutCopyMode = False
Windows("Récap.XLS").Close
End Sub

Comme tu le vois y a pas de modification majeure, juste j'ai renommé dans ton classeur Récap, la feuille "Détail" en feuille "Detail" sans accent.
Juste parce qu'un grand forumeur qui se reconnaitra (il est présent dans le fil) m'a un jour dépatouillé en me faisant retirer un espace d'un nom de feuille...

Vérifie donc si dès fois ça ne résoudrait pas ton problème...
Bien sur il faut aussi (a priori) qu'une seule cellule soit active dans ton classeur source et non une plage.

En espérant t'avoir aidé.

Bonne journée

Steplof
 

Discussions similaires

Réponses
12
Affichages
416
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…