XL 2016 VBA : utiliser le "i" sans le point "ı"

Yücel

XLDnaute Junior
Bonjour,

Je souhaiterai utiliser cette ligne mais ça ne fonctionne pas car le "i" n'a pas de point dessus (écriture en langue étrangère) :

Worksheets("Kiracı").Select

Cdt.

Yucel
 
Solution
Bonjour Yücel,

J'ai bien vu tes 3 derniers posts ; regarde le fichier joint.

J'ai amélioré la présentation de ton UserForm ;
nouveau code VBA complet de ce UserForm :


VB:
Option Explicit

'sub privée Job() : appelée uniquement par ces 2 subs : CommandButton1_Click()
'et CommandButton3_Click() (donc par un clic / boutons Ajouter et Modifier)

Private Sub Job(lig&)
  With Cells(lig, 2) 'on référence la colonne B : Appart
    .Value = TextBox1         'Appart
    .Offset(, 1) = ComboBox1  'code locataire
    .Offset(, 2) = TextBox2   'Genre
    .Offset(, 3) = TextBox3   'Nom
    .Offset(, 4) = TextBox4   'Prénom
    .Offset(, 6) = TextBox5   'Tel / Mail
    .Offset(, 7) = TextBox6   'entrée le
  End With
End Sub

'clic / bouton...

soan

XLDnaute Barbatruc
Inactif
Bonjour Yücel,

Désolé, j'ai oublié de corriger Dim ligne As Integer en Dim ligne As Long ou Dim ligne&

En effet, la valeur maximum du type Integer est 32 767 ; donc pour cette instruction :

ligne = Cells(Rows.Count, 2).End(3).Row + 1

la macro va planter si le calcul de la variable ligne tombe sur 32 768 ou plus !

---------------------------------------------------------------------------------------------------

Si tu as d'autres macros que la sub CommandButton1_Click() pour lesquelles une variable
de type Integer doit contenir un n° de ligne qui risque de dépasser 32 767, alors là aussi,
remplace Integer par Long, ou utilise le caractère de déclaration de type & :
Dim Lig& est idem que Dim Lig As Long (c'est juste plus court !).

Très bonne journée à toi aussi !
:)

soan
 
Dernière édition:

Yücel

XLDnaute Junior
Soan :)

j'aurais une autre demande sur le même fichier SVP,

Lorsque j'écris ça :

modif = TextBox1.ListIndex + 2

ça me met une erreur car "TextBox1" n'aime pas "ListIndex" je pense !

Par quoi changer "Listindex" pour que ça fonctionne avec "Textbox1" ??

Merci pour votre aide !
 

Yücel

XLDnaute Junior
le code en un peu plus large :

Dim modif As Integer
modif = TextBox1.ListIndex + 2
Cells(modif, 3) = TextBox1.Value
Cells(modif, 6) = TextBox2.Value
Cells(modif, 7) = TextBox3.Value
Cells(modif, 8) = TextBox4.Value
Cells(modif, 9) = TextBox5.Value
Cells(modif, 10) = TextBox6.Value

...
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Yücel,

J'ai bien vu tes 3 derniers posts ; regarde le fichier joint.

J'ai amélioré la présentation de ton UserForm ;
nouveau code VBA complet de ce UserForm :


VB:
Option Explicit

'sub privée Job() : appelée uniquement par ces 2 subs : CommandButton1_Click()
'et CommandButton3_Click() (donc par un clic / boutons Ajouter et Modifier)

Private Sub Job(lig&)
  With Cells(lig, 2) 'on référence la colonne B : Appart
    .Value = TextBox1         'Appart
    .Offset(, 1) = ComboBox1  'code locataire
    .Offset(, 2) = TextBox2   'Genre
    .Offset(, 3) = TextBox3   'Nom
    .Offset(, 4) = TextBox4   'Prénom
    .Offset(, 6) = TextBox5   'Tel / Mail
    .Offset(, 7) = TextBox6   'entrée le
  End With
End Sub

'clic / bouton "Ajouter"

Private Sub CommandButton1_Click()
  If ComboBox1 = "" Then MsgBox "Veuillez renseigner le champ 'Nom/Prénom'": Exit Sub
  If MsgBox("Confirmez-vous l'ajout des données ?", 4, "confirmation") <> 6 Then Exit Sub
  Application.ScreenUpdating = 0: Feuil1.Select
  Dim lig&: lig = Cells(Rows.Count, 2).End(3).Row + 1 'selon colonne B : Appart
  Job lig: Unload UserForm1: UserForm1.Show
End Sub

'clic / bouton "Rechercher"

Private Sub CommandButton2_Click()
  If ComboBox1 = "" Then Exit Sub
  Dim lig&: lig = ComboBox1.ListIndex + 2: Application.ScreenUpdating = 0
  With Cells(lig, 1)
    TextBox1 = .Value         'Appart
    ComboBox1 = .Offset(, 1)  'code locataire
    TextBox2 = .Offset(, 2)   'Genre
    TextBox3 = .Offset(, 3)   'Nom
    TextBox4 = .Offset(, 4)   'Prénom
    TextBox5 = .Offset(, 6)   'Tel / Mail
    TextBox6 = .Offset(, 7)   'entrée le
  End With
End Sub

'clic / bouton "Modifier"

Private Sub CommandButton3_Click()
  Dim lig&: Application.ScreenUpdating = 0: Feuil1.Select
  If ComboBox1 <> "" Then
    lig = ComboBox1.ListIndex + 2: Job lig
    Application.ScreenUpdating = -1: MsgBox "Modification effectuée"
  Else
    Application.ScreenUpdating = -1
    MsgBox "Veuillez sélectionner le Nom/Prénom de la personne à modifier"
    Exit Sub
  End If
  Unload UserForm1: UserForm1.Show 0
End Sub
soan
 

Pièces jointes

  • Tuto 5.xlsm
    27.3 KB · Affichages: 2

Discussions similaires

Réponses
6
Affichages
771
Réponses
10
Affichages
678

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise