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 Suble 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 SubEdit 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
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 SubA+
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 SubBonjour le fil
Dites voir Eric Lespert, serais-je transparent sur ce forum
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
BONJOUR pour commencer, vous vous croyez où
Et je ne crois pas non, ce n'est pas mon code
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
