Erreur méthode de données

Résolu
titi17-08 Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   -  
Le Pingou Messages postés 12242 Date d'inscription   Statut Contributeur Dernière intervention   - 30 juil. 2021 à 09:44
Bonjour
j'ai un message "methode ou membre de données introuvable".
pouvez vous m'aider s'il vous plait.
merci
Private Sub VALIDER_Contrat_Click()
Dim nomf As String
Dim i As Long
Dim sh As Worksheet
nomf = Debut_Contrat_M.Value ' nom de la feuille a selectionner
For i = 1 To Worksheets.Count
With sh
If Left(.Value, 8) = nomf Then
Sheets(i).Select


Range("A7" & Range("A26").End(xlUp).Row + 1).Select
Range(0, 3).Value = Nom_Freelance.Value
Range(0, 4).Value = Prenom_Freelance.Value
Range(0, 5).Value = Tel_Freelance.Value
Range(0, 6).Value = Statut_Freelance.Value
Range(0, 11).Value = Nb_jours.Value
Range(0, 12).Value = TJM_Achat.Value
Range(0, 13).Value = TJm_Contrat.Value
Range(0, 14).Value = TJM_Vente.Value
Range(0, 16).Value = Effort.Value
Range(0, 18).Value = Duree_Contrat.Value
Range(0, 20).Value = Nb_jours.Value
Range(0, 23).Value = Debut_Contrat_J.Value & "/" & Debut_Contrat_M.Value & "/" & Debut_Contrat_A.Value
End If
End With
Next i
End Sub

4 réponses

Le Pingou Messages postés 12242 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Juste au passage;
nomf = Debut_Contrat_M.Value ' nom de la feuille a selectionner
se devrait être plutôt:
nomf="Debut:Contrat_M"
je suppose qu'il n'y a pas de [.Value] dans le nom de la feuille!
0
titi17-08 Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour Le pingou,
alors Début_Contrat_M est un variable récupérée dans une listebox d'un user form ..
0
Le Pingou Messages postés 12242 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Eh bien pourquoi vous mettez commentaire ' nom de la feuille a selectionner
S'il vient d'un formulaire alors il devrait y avoir le nom du formulaire ....Usefforme1.NomCombobox...
Pour vous aidez il serait plus profitable de savoir exactement se que vous voulez réaliser avec votre code .Un plus serait de mettre le fichier à disposition sur https://mon-partage.fr/ ou https://www.cjoint.com/ et poster le lien

Note: lorsque vous lancez votre macro, qu'elle est exactement le code d'erreur et en plus quelle ligne de la macro est surlignée?

0
titi17-08 Messages postés 117 Date d'inscription   Statut Membre Dernière intervention   1
 
Mon code a évolué pendant ce temps et j'ai trouvé..
je suis sur un autre souci de trouver la première cellule vide d'une plage C8:C26 et il me sélectionne une cellule hors de ma plage ;(
Private Sub VALIDER_Contrat_Click()
Dim nomf As String
Dim sh As Worksheet
nomf = Debut_Contrat_M
For Each sh In Worksheets
If sh.Name = Debut_Contrat_M & " " & Debut_Contrat_A Then
sh.Select

NoLig = ActiveSheet.Cells(Columns(3).Cells.Count, 3).End(xlUp).Row + 1
ActiveSheet.Cells(NoLig, 3).Select
MsgBox "trouvé"

'.Offset(0, 3).Value = Nom_Freelance.Value
'.Offset(0, 4).Value = Prenom_Freelance.Value
'.Offset(0, 5).Value = Tel_Freelance.Value
'.Offset(0, 6).Value = Statut_Freelance.Value
'.Offset(0, 11).Value = Nb_jours.Value
'.Offset(0, 12).Value = TJM_Achat.Value
'.Offset(0, 13).Value = TJm_Contrat.Value
'.Offset(0, 14).Value = TJM_Vente.Value
'.Offset(0, 16).Value = Effort.Value
'.Offset(0, 18).Value = Duree_Contrat.Value
'.Offset(0, 20).Value = Nb_jours.Value
'.Offset(0, 23).Value = Debut_Contrat_J.Value & "/" & Debut_Contrat_M.Value & "/" & Debut_Contrat_A.Value
Exit For


End If
Next sh
Unload Me
End Sub

merci de votre aide
0
Le Pingou Messages postés 12242 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Pour commencer vous faite un pas à pas sur votre code pour savoir la valeur de la première cellule vide...!
Est-ce par hasard la cellule C32 qui est sélectionnée...?
Note : si c'est en dehors de la plage c'est que vous avez des données dans les lignes suivantes de la colonne [C]
Remarque:
Si vous limitez à la plage [C8 :C26] alors vous comptez le nombres de cellule non vide [NBVAL()]et par exemple si vous avez 3 alors la première ligne vide est : 8+3=11 . Donc 0 si tout vide et 19 si complet)


0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 263
 
Bonjour,

et il faudrait tester NoLig.
Après 26 il ira naturellement en 27 et plus loin
eric
0
Le Pingou Messages postés 12242 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Hello eriiic,
Oui bien sur, je l'ai aussi mentionné, mais comme il précise la première cellule vide d'une plage C8:C26 , donc on peu pensée que plus loin il y a d'autre données, donc mauvaise position.
Amical salut
Le Pingou
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 263 > Le Pingou Messages postés 12242 Date d'inscription   Statut Contributeur Dernière intervention  
 
Salut le pingou :-)

J'ai dû te lire un peu trop en diagonale... ;-)
Perso je ferai comme ça :
Sub test()
    Dim pl As Range
    On Error Resume Next
    Set pl = Range("C8:C26").SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not pl Is Nothing Then
        MsgBox "1ère cellule vide en " & pl(1).Address
    Else
        MsgBox "Plus de place"
    End If
End Sub 

Si j'ai bien compris sa demande.
Là je ne vois aucune ligne dans son code pour 'et il me sélectionne une cellule hors de ma plage' ?!?
eric
0
Le Pingou Messages postés 12242 Date d'inscription   Statut Contributeur Dernière intervention   1 458 > eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci eriiic, je n'avais pas du tout pensée à cette solution.
Bonne fin de semaine.
Amical salut
Le Pingou
0