Erreur méthode de données

Résolu
titi17-08 Messages postés 123 Statut Membre -  
Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
    1. titi17-08 Messages postés 123 Statut Membre 1
       
      Bonjour Le pingou,
      alors Début_Contrat_M est un variable récupérée dans une listebox d'un user form ..
      0
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
    1. titi17-08 Messages postés 123 Statut Membre 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
  3. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    et il faudrait tester NoLig.
    Après 26 il ira naturellement en 27 et plus loin
    eric
    0
    1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      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
      1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281 > Le Pingou Messages postés 12276 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
      2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478 > eriiic Messages postés 24581 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