Ou est l'eurreur

Fermé
domi4roues Messages postés 82 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 23 octobre 2019 - Modifié le 11 juil. 2019 à 13:26
domi4roues Messages postés 82 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 23 octobre 2019 - 25 sept. 2019 à 10:15
Bonjour est merci d'avance pour les solution

Je suis en panne d'idées je suis dans la réalisation d'un formulaire pour le pro . Je n'est rien compris en copiant bêtement un script d'une macro qui fonctionne en l'adaptent a mes besoin . Lorsque à des essais il y a un erreur 438 qui s'affiche ..... Mais je ne voix rien du coté de la base de registre Bon!
Puis il me met en jaune Selection.Offset(1, 0).seclect 'On se décale 1 ligne vers le bas ' ....! et tous ce bloque

Ces codification sont elle fausse ou c'est autres chose

encore merci de vos contributions
' ****************************************************
' Procédure qui permettant d'ajouter
' un nouvelle enregistrement dans la base de donné
'****************************************************

Private Sub BtnEnregistre_Click()

    Sheets("BDDdemande").Activate
    Range("A1").Select
    Selection.End(xlDown).Select  'On se positionne dernière ligne non vide
    Selection.Offset(1, 0).seclect  'On se décale 1 ligne vers le bas
    ActiveCell = TextNuméroFiche.Value
    ActiveCell.Offset(0, 1).Value = TextDatedemande
    ActiveCell.Offset(0, 2).Value = CboBatiment
    ActiveCell.Offset(0, 3).Value = CboEtage
    ActiveCell.Offset(0, 4).Value = CboLieu
    ActiveCell.Offset(0, 5).Value = CboCompetence
    ActiveCell.Offset(0, 6).Value = CboPriorite
    ActiveCell.Offset(0, 7).Value = TextTravaux
    ActiveCell.Offset(0, 8).Value = TextCommantaire
    ActiveCell.Offset(0, 9).Value = CboOpérateur
    

End Sub

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 11 juil. 2019 à 13:39
Bonjour

Avec VBA, il ne faut pas utiliser .Select et Selection (ni ActiveCell, ActiveSheet, ... ), sauf quand c'est indispensable, c'est-à-dire quasiment jamais !

Essaies :
' ****************************************************
' Procédure qui permettant d'ajouter
' un nouvelle enregistrement dans la base de donné
'****************************************************

Private Sub BtnEnregistre_Click()

  With Worksheets("BDDdemande")
    With .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
      .Value = TextNuméroFiche.Value
      .Offset(0, 1).Value = TextDatedemande
      .Offset(0, 2).Value = CboBatiment
      .Offset(0, 3).Value = CboEtage
      .Offset(0, 4).Value = CboLieu
      .Offset(0, 5).Value = CboCompetence
      .Offset(0, 6).Value = CboPriorite
      .Offset(0, 7).Value = TextTravaux
      .Offset(0, 8).Value = TextCommantaire
      .Offset(0, 9).Value = CboOpérateur
    End With
  End With

End Sub



0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
11 juil. 2019 à 13:42
PS : c'est pour ça que je préfère ne pas dire où se trouve l'erreur
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
11 juil. 2019 à 13:41
Bonjour Domi, bonjour le forum,

J'ai comme l'impression que la colonne A est vide. Du coup la dernière ligne non vide correspond à la dernière ligne de l'onglet et donc le décalage d'une ligne vers le bas génère une erreur car on est déjà à la dernière ligne... Évite les Select inutiles, il ne font que ralentir l'exécution du code !...

Essaie comme ça :
Private Sub BtnEnregistre_Click()
Dim O As Worksheet
Dim PLV As Integer

Set O = Sheets("BDDdemande")
PLV = O.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1
O.Cells(PLV, 1) = TextNuméroFiche.Value
O.Cells(PLV, 2).Value = TextDatedemande
O.Cells(PLV, 3).Value = CboBatiment
O.Cells(PLV, 4).Value = CboEtage
O.Cells(PLV, 5).Value = CboLieu
O.Cells(PLV, 6).Value = CboCompetence
O.Cells(PLV, 7).Value = CboPriorite
O.Cells(PLV, 8) = TextTravaux
O.Cells(PLV, 9) = TextCommantaire
O.Cells(PLV, 10) = CboOpérateur
End Sub

0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
11 juil. 2019 à 14:34
Non, l'erreur n'est pas là : la méthode n'existe pas !
0
domi4roues Messages postés 82 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 23 octobre 2019
11 juil. 2019 à 15:05
merci je passe au essais .
0
domi4roues Messages postés 82 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 23 octobre 2019
11 juil. 2019 à 15:13
bon a premier vue le transfert de ne fonctionne pas dans ma basse
0
domi4roues Messages postés 82 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 23 octobre 2019
11 juil. 2019 à 15:26
j'ai tous faut donc je ne 'es pas personnaliser mes réponses. Merci à ThauTheme la solution proposer ne fonctionne pas

merci encore
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
11 juil. 2019 à 15:42
Le fil, le forum,

Domi tant que tu ne daigneras pas fournir le fichier qui va bien on tournera en rond...
0
domi4roues Messages postés 82 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 23 octobre 2019
25 sept. 2019 à 10:15
comment fautil fait pour transmettre le fichier
0