Manipulation des UserForm avec des feuilles cachées
Résolu/Fermé
mijean94
Messages postés
394
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
8 novembre 2021
-
10 avril 2016 à 00:07
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 10 avril 2016 à 17:04
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 10 avril 2016 à 17:04
A voir également:
- Manipulation des UserForm avec des feuilles cachées
- Codes secrets Android : accéder aux fonctions cachées - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Fusionner des feuilles excel - Guide
- Vous ne pouvez pas déplacer des objets en dehors de la feuille ✓ - Forum Excel
- Excel reporter des données sur une autre feuille avec conditions ✓ - Forum Excel
1 réponse
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
Modifié par ThauTheme le 10/04/2016 à 01:36
Modifié par ThauTheme le 10/04/2016 à 01:36
Bonsoir Mijean, bonsoir le forum,
Tu n'as pas besoin de sélectionner un onglet pour y placer des données tant que tu ne sélectionnes pas de cellule dans cet onglet. Il te suffit juste de le spécifier. Ce que tu a fait dans ton code. Les lignes Sheets("BD").Select et Sheets("FA").Select sont donc inutiles. Ton code devient :
En revanche, quand tu déclares tes variables, il te faut les "typer" sinon elle prennent le type Variant par défaut et c'est les plus gourmand en mémoire...
Dim ligne, f devient :
que l'on peut aussi écrire :
À plus,
ThauTheme
Tu n'as pas besoin de sélectionner un onglet pour y placer des données tant que tu ne sélectionnes pas de cellule dans cet onglet. Il te suffit juste de le spécifier. Ce que tu a fait dans ton code. Les lignes Sheets("BD").Select et Sheets("FA").Select sont donc inutiles. Ton code devient :
Private Sub B_validation_Click() '--- Transfert Formulaire dans BD Dim FA As String Application.ScreenUpdating = False 'Gèle l'écran FA = ActiveSheet.Name 'Conserve le nom de la feuille active dans une variable 'Sheets("BD").Select 'Sélectionne la feuille sur laquelle tu veux travailler 'Tes opérations f.Unprotect f.Cells(ligne, 2) = Application.Proper(Me!nom) f.Cells(ligne, 3) = Me.Marié 'OuiNon(Me.Marié) f.Cells(ligne, 4) = CVDate(Me.date_naissance) f.Cells(ligne, 5) = Me.Service f.Cells(ligne, 6) = Me.Ville f.Cells(ligne, 7) = CDbl(Me.Salaire) '-- Civilité temp = "" For Each c In Me.Civilité.Controls If c.Value = True Then temp = c.Caption End If Next c f.Cells(ligne, "a") = temp f.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 'Sheets(FA).Select 'Reviens à la feuille initiale ni vu ni connu ! End Sub
En revanche, quand tu déclares tes variables, il te faut les "typer" sinon elle prennent le type Variant par défaut et c'est les plus gourmand en mémoire...
Dim ligne, f devient :
Dim ligne As Integer 'ou Long si gros tableau de plus de 32 767 lignes Dim f As Worksheet
que l'on peut aussi écrire :
Dim ligne As Integer, f As worksheet
À plus,
ThauTheme
10 avril 2016 à 17:04
Merci pour cet réponse qui fonctionne nickel.
Je vais de ce pas l'appliquer à mon programme.
Cordialement