Erreur 1004 la méthode select de la classe range a échoué VBA

Bonjour,

cela fait plusieurs jours que je navigue a chercher une solution a cette erreur. Parfois elle disparait (surtout en mode développeur) mai elle devient récurrente et là je bloque.

sur le formulaire, au moment de valider les infos, j'ai une macro de triage qui se met en marche en fonction de la date te heure... ci dessous les codes:

Merci d'avance pour votre aide

sur le formulaire:

Private Sub CB_Mod_Click()

Dim L As Long
Dim c As Range
Dim Ligne As Long

If MsgBox("Etes-vous certain de vouloir modifier la fiche ?", vbYesNo, "Demande de confirmation") = vbYes Then
If Me.ComboBoxRecherche = "" Then Exit Sub '.ListIndex = -1 Then Exit Sub

Set c = Range("C" & Rows.Count).End(xlUp).Find(ComboBoxRecherche, lookat:=xlWhole)

With Sheets("Base rdv")
Ligne = Me.ComboBoxRecherche.ListIndex + 2
Range("A" & Ligne).Value = LabelIdent
Range("B" & Ligne).Value = ComboBoxCiv
Range("C" & Ligne).Value = TextBoxNom
Range("D" & Ligne).Value = TextBoxPrenom
Range("E" & Ligne).Value = TextBox_DateRDV
Range("F" & Ligne).Value = ComboBoxMotif
Range("G" & Ligne).Value = ComboBoxDuree
Range("H" & Ligne).Value = ComboBoxPrix
Range("I" & Ligne).Value = LabelID_Fact
Range("j" & Ligne).Value = TextBoxTel
Range("K" & Ligne).Value = TextBoxEmail

Call triage
MsgBox ("Ligne modifiée dans le fichier") 'Vous informe que la ligne est insérée dans votre tableau Excel.
End With
Unload Me
End If
End Sub

le module macro:

Sub triage()

Range("TableauBaseRDV[Date-H RDV]").Select '(erreur 1004 la méthode select de la classe range a échoué vba)
ActiveWorkbook.worksheets("Base rdv").ListObjects("TableauBaseRDV").Sort. _
SortFields.Clear
ActiveWorkbook.worksheets("Base rdv").ListObjects("TableauBaseRDV").Sort. _
SortFields.Add2 Key:=Range("TableauBaseRDV[Date-H RDV]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, CustomOrder:="dd/mm/yyyy hh:mn", _
DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.worksheets("Base rdv").ListObjects("TableauBaseRDV").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

End Sub

Edit modo : code mis entre balises avec le bouton </> (merci d'y faire attention SVP)

Bonjour

Peux tu envoyer un exemplaire de ton fichier avec quelques données bidons

Cordialement

Bonjour le fil,

Programmation objet... il faut y penser

Quel est votre objet conteneur, on ne sait pas ainsi le "select" qui alourdi l'exécution ne servirait à rien

Sub Triage()
  With Sheets("Base RDV").ListObjects("TableauBaseRDV")
    With .Sort
      .SortFields.Clear
      .SortFields.Add2 Key:=Range("TableauBaseRDV[Date-H RDV]"), SortOn:=xlSortOnValues, Order:=xlAscending, _
          CustomOrder:="dd/mm/yyyy hh:mn", DataOption:=xlSortTextAsNumbers
      .Header = xlYes
      .MatchCase = False
      .Orientation = xlTopToBottom
      .SortMethod = xlPinYin
      .Apply
    End With
  End With
End Sub

A+

fichier pour tester

infos: pour ouvrir le formulaire modifier en normal, il faut passer par le formulaire prise de rdv puis modifier.

pour activer le changement de date, il faut cliquer dans la textbox date et valider a nouveau le n° de fact qui doit etre changer en cas de nouvelle date choisie.

ça demande encore un peu d'automatisme ...

sur le formulaire modifier rdv, le bouton valider n'est pas opérationnel

Bonjour

Ta macro triage est sensée trier quelle feuille?

de bonjour

pour te répondre joco7915, la feuille "Base rdv" a partir de la date et heure, car apres cela servira sur deux autres applications facturation et agenda

Etant encore très newbee sur Excel et vba, il y a certainement beaucoup d'erreurs un peu partout...

comme on dit on apprends de ses erreurs mais parfois un coup de mains et bien ça fait du bien...

merci pour votre aide, on ne vous le dira sans doute jamais assez :)

Essaies comme cela en modifiant légèrement ton code supprimer le Call triage en haut et le mettre avant le End Sub

'Call triage A SUPPRIMER
MsgBox ("Ligne modifiée dans le fichier") 'Vous informe que la ligne est insérée dans votre tableau Excel.
End With
Unload Me
End If

Call triage

End Sub

Bonjour le fil

Dites voir Eric Lespert, serais-je transparent sur ce forum Faire ça à un modo... hum comment dire

Le code donné est tout à fait fonctionnel, sauf que dans votre tableau le nom de la colonne E n'est pas correcte

"Date-H RDV" avec 2 espaces au lieu de "Date-H RDV"

Merci de prêter attention à ce les contributeurs vous et et surtout merci de leur répondre SVP

A bon entendeur

Joco7915 toujours même problème

BrunoM45 , dsl pour cette erreur de base mais même en corrigeant reste pareil ...

capture defaut

BONJOUR pour commencer, vous vous croyez où

Et je ne crois pas non, ce n'est pas mon code

Donné ici https://forum.excel-pratique.com/s/goto/1023153

Re bonjour (oui je sais le bonjour saute assez souvent et c'est bien une des remarques récurrentes de ma femme surtout quand je suis en écrit, donc désolé)

Apres une ou deux petites modif cela fonctionne . J'ai créer la liste "listeDateHRDV" pour éviter l'apparition du défaut a nouveau dans le module triage et j'ai du mettre da l'initialize du formulaire de modification la sélection de la feuille "base rdv", je n'ai pas compris pourquoi. Car tant que je testais en mode développeur tout fonctionnait mais des que je redémarrais depuis les boutons de l'accueil (appel de l'ajout rdv puis modif) et que je cherchais a modifier un rdv, rien ne se passait dans le tableau rdv...

Comme ça fonctionne comme ça, je considère comme résolu, encore merci de vos conseils et de votre aide !

Bonjour Eric,

C'est parfait, mais merci de faire attention à votre communication sur ce forum,
comme vous avez pu le constater, j'ai tendance à être très à cheval sur le suivi et la politesse des intervenants

Rechercher des sujets similaires à "erreur 1004 methode select classe range echoue vba"