Transferer la valeur d'un textbox
Fermé
abdellah_tadjine
Messages postés
191
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
5 janvier 2022
-
11 avril 2020 à 23:09
abdellah_tadjine Messages postés 191 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 5 janvier 2022 - 12 avril 2020 à 21:33
abdellah_tadjine Messages postés 191 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 5 janvier 2022 - 12 avril 2020 à 21:33
A voir également:
- Transferer la valeur d'un textbox
- Transférer message whatsapp - Accueil - WhatsApp
- Comment transférer un mail - Guide
- Comment transférer un mail sur un autre mail - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur ascii - Guide
2 réponses
jordane45
Messages postés
38470
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 avril 2025
4 741
Modifié le 11 avril 2020 à 23:54
Modifié le 11 avril 2020 à 23:54
Dis voir... va falloir qu'on te le répète combien de fois ??
Ensuite... regardes bien ton code et essaies de réfléchir un peu :
Ta variable est trouvée comme ceci
Et tu nous dis :
Ne vois tu pas le pb ??
Lorsque tu postes du code sur le forum, merci de bien vouloir utiliser LES BALISES DE CODE
explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code.Ensuite... regardes bien ton code et essaies de réfléchir un peu :
Ta variable est trouvée comme ceci
derligne = Sheets("CE1.1").Range("A254256").End(xlUp).Row + 1
Et tu nous dis :
une fois que je change le feuil ("ce1.2")
Ne vois tu pas le pb ??
Patrice33740
Messages postés
8561
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
15 mars 2025
1 779
Modifié le 12 avril 2020 à 09:36
Modifié le 12 avril 2020 à 09:36
Bonjour,
Contrairement à ce que tu affirmes, ton code ne fonctionne « pas très bien », mais plutôt tant bien que mal !
Il bénéficie de la très grande souplesse du VBA qui est la cause de ton problème. Il y a d'autres problèmes sous-jacents.
Ta demande en est une preuve flagrante.
La programmation exige beaucoup de rigueur pour coder correctement, voici quelques conseils qui t'éviterons bien des déboires :
1• commences tous les modules par Option Explicit, cela oblige à déclarer toutes les variables ;
2• déclares les variables avec le type ad hoc et fais attention à préciser le type après chaque nom de variable ;
3• limites leur portée au strict nécessaire (i.e. locale, privée, publique ou globale), afin qu'elles n'existent que là où elles sont utiles ;
4• envisages tous les types potentiels de chaque variable pour éviter les erreurs. En particulier lors des affectations, assures-toi que le récepteur est de même type que la source sinon utilises une fonction de conversion,
--- par exemple, au lieu de
écrire
5• dans le doute prévois un gestionnaire d'erreur ;
6• n'utilises jamais .Select, évites d'utiliser les objets actifs : Selection, Activecell, Activesheet, ... (sauf, très très rarement, lorsque c'est absolument indispensable) ;
7• évites les références implicites(i.e. partielles), privilégies les références explicites (i.e. suffisamment complètes),
--- par exemple, au lieu de
donc, précises toujours la feuille pour un objet Range (Cells, Rows, ...) et la propriété cible (Value, Text, ...)
8• n'hésites pas à utiliser des variables pour représenter les objets, ça facilite l'écriture et la lecture du code,
--- par exemple :
9• pour les mêmes raisons, n'hésites pas à utiliser aussi
10• évites d'utiliser des propriétés ou méthodes d'objet héritées qui pourraient ne pas exister,
--- par exemple, au lieu de :
en effet l'objet Range n'appartient pas à Sheet mais à Worksheet ;
11• évites d'utiliser le Presse-Papier de Windows, préfères la copie directe avec une destination :
12• commentes le code, penses à celui (peut-être toi) qui devra le déboguer dans deux ou trois ans !
13• respectes certaines règles de nommage des variables, notamment l'emploi d'un préfixe : le code est plus lisible par tous. Voir ici : https://argyronet.developpez.com/office/vba/convention/
14• n'écris pas de procédures fleuves (très longues), scindes les en différentes procédures élémentaires : là encore le code sera plus lisible.
15• libéres la mémoire dès que possible, en particulier pour les tableaux et les objets.
Cela devrait te permettre de résoudre ton problème, en particulier dans l'ordre les points 7, 9, et 4, 10, 1.
Contrairement à ce que tu affirmes, ton code ne fonctionne « pas très bien », mais plutôt tant bien que mal !
Il bénéficie de la très grande souplesse du VBA qui est la cause de ton problème. Il y a d'autres problèmes sous-jacents.
Ta demande en est une preuve flagrante.
La programmation exige beaucoup de rigueur pour coder correctement, voici quelques conseils qui t'éviterons bien des déboires :
1• commences tous les modules par Option Explicit, cela oblige à déclarer toutes les variables ;
2• déclares les variables avec le type ad hoc et fais attention à préciser le type après chaque nom de variable ;
3• limites leur portée au strict nécessaire (i.e. locale, privée, publique ou globale), afin qu'elles n'existent que là où elles sont utiles ;
4• envisages tous les types potentiels de chaque variable pour éviter les erreurs. En particulier lors des affectations, assures-toi que le récepteur est de même type que la source sinon utilises une fonction de conversion,
--- par exemple, au lieu de
Worksheets(1).Cells(1,2).Value = textboxDate.value,
écrire
Worksheets(1).Cells(1,2).Value = CDate(textboxDate.value);
5• dans le doute prévois un gestionnaire d'erreur ;
6• n'utilises jamais .Select, évites d'utiliser les objets actifs : Selection, Activecell, Activesheet, ... (sauf, très très rarement, lorsque c'est absolument indispensable) ;
7• évites les références implicites(i.e. partielles), privilégies les références explicites (i.e. suffisamment complètes),
--- par exemple, au lieu de
= Cells(1,2)écrire
= Worksheets(1).Cells(1,2).Value,
donc, précises toujours la feuille pour un objet Range (Cells, Rows, ...) et la propriété cible (Value, Text, ...)
8• n'hésites pas à utiliser des variables pour représenter les objets, ça facilite l'écriture et la lecture du code,
--- par exemple :
Set MaPlage = Me.Range("B2:C8");
9• pour les mêmes raisons, n'hésites pas à utiliser aussi
Withet
End With;
10• évites d'utiliser des propriétés ou méthodes d'objet héritées qui pourraient ne pas exister,
--- par exemple, au lieu de :
Sheets(1).Range("A1")écrire
Workheets(1).Range("A1"),
en effet l'objet Range n'appartient pas à Sheet mais à Worksheet ;
11• évites d'utiliser le Presse-Papier de Windows, préfères la copie directe avec une destination :
Source.Copy Destinationou, pour copier que les valeurs :
Destination.valeur = Source.Valeur.
12• commentes le code, penses à celui (peut-être toi) qui devra le déboguer dans deux ou trois ans !
13• respectes certaines règles de nommage des variables, notamment l'emploi d'un préfixe : le code est plus lisible par tous. Voir ici : https://argyronet.developpez.com/office/vba/convention/
14• n'écris pas de procédures fleuves (très longues), scindes les en différentes procédures élémentaires : là encore le code sera plus lisible.
15• libéres la mémoire dès que possible, en particulier pour les tableaux et les objets.
Cela devrait te permettre de résoudre ton problème, en particulier dans l'ordre les points 7, 9, et 4, 10, 1.
abdellah_tadjine
Messages postés
191
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
5 janvier 2022
6
12 avril 2020 à 21:33
12 avril 2020 à 21:33
merci pour ces précieux conseils.
je vais essayer.
je vais essayer.
12 avril 2020 à 01:46
2)..si j'avais la solution je ne perd pas mon temps a chercher sur le forumccm.
3)...si vous ne voulez pas m'aider et bien .....vous etes libre. Merci
12 avril 2020 à 02:00
Tu cherches la dernière ligne sur la feuille CE1
1
Lorsque tu changes de feuilles tu cherches toujours au même endroit.... je suppose donc que ton souci vient de là.
Ps... il faut lire le lien que je t'ai donné pour les balises de code entièrement...ça devrait t'aider à comprendre comment les utiliser.
pense aussi lorsque tu rédige un message que tu peux utiliser le bouton previsualiser histoire de voir si ça bien fonctionné...
12 avril 2020 à 02:09
Pour ton deuxième conseil je vais utiliser l'option de visualiser. Cordialement abdallah
12 avril 2020 à 10:28
Si oui,.. qu'as tu fais ?
Qu'est-ce que ça donne ?
En quoi cela ne permet pas de résoudre ton souci ?
ôtes moi d'un doute...Tu n'espères pas qu'on écrive le code à ta place quand même ?
Ici, on essai d'aider les gens à résoudre leurs soucis... on les aide à réfléchir et à trouver la solution.... à conditions que tu fasses un minimum d'effort...
A te lire.. j'ai l'impression que tu n'es pas dans cette démarche... j'espère me tromper !