Problème avec "If, Then, Else"

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
213
Réponses
4
Affichages
332
Réponses
3
Affichages
569
Réponses
2
Affichages
410
Retour