Code VBA qui ne fonctione plus après réouverture

Bonjour,

Débutant en VBA j'ai glané pas mal de morceaux afin de monter un petit vba permettant la saisie/recherche/modification, d'une table de données relativement conséquente.

Après pas mal de galère j'ai réussi à obtenir ce que je voulais, j'ai testé et cela fonctionnais. Problème, après fermeture du fichier excel puis réouverture (sauvegarde faites, pc identique) une partie du code ne fonctionne plus.

En effet la saisie de nouvelle données ok par contre la recherche pas du tout. Si je rajoute une nouvelle données par contre la recherche fonctionneras pour celle-ci mais pas sur les anciennes. Ne serait-ce que cliquer sur le "quitter" du formulaire engendre ce phénomène.

Ci-joint mon fichier si une âme charitable pouvais m'éclairer s'il vous plait. J'ai tenté pas mal de modification sans succès (le fichier joint est celui qui fonctionnais).

J'ai déjà cherché sur de nombreux forum la solution sans y parvenir.

Merci

bonjour,

Pas facile de tester une recherche avec une feuille Source vide !

Comment est prévue de fonctionner la rechercher?

A+

En effet la feuille source est vierge, ce sont des données personnel que je ne peux pas diffuser. Il suffit de mettre deux trois info dans le formulaire et de faire créer. Ensuite l'objectif est de pouvoir retrouver l'info et de la modifier.

Ci-joint, j'y ai mis quelques données test.

Merci

dans Private Sub btnrechercher_Click() les Cells(no_ligne, ... ne sont rattachés à aucune feuille. Les infos sont donc prises dans la feuille courante qui est la feuille Tableau de bord qui ne contient pas les données.

Il faut donc indiquer sur quelle feuille on veut obtenir les données :

With Worksheets("Source")
cbocivilite.Value = .Cells(no_ligne, 1).Value
cbonom.Value = .Cells(no_ligne, 2).Value
txtprenom.Value = .Cells(no_ligne, 3).Value
txtadresse.Value = .Cells(no_ligne, 4).Value
cbolieudit.Value = .Cells(no_ligne, 5).Value
.../...
txtcaps191.Value = .Cells(no_ligne, 104).Value
txt20191.Value = .Cells(no_ligne, 105).Value
txt20192.Value = .Cells(no_ligne, 106).Value

End With

ne pas omettre le point (.) devant Cells

Bien que non recommandable, l'autre solution est de faire comme vous avez fait dans Private Sub btnmodif_Click() : sélectionner la bonne feuille avant de faire appel aux Cells(...

Sheets("source").Select
...
Cells(no_ligne, 1) = cbocivilite.Value
Cells(no_ligne, 2) = cbonom.Value

Un immense merci, ça fonctionne nikel!! Tu me sauve, j'étais complètement perdu.

Bonjour,

Et tu as de forte chance d'être de nouveau perdu assez rapidement parce que ce classeur il vaut m^me pas le temps que j'ai passé à le lire... et à te faire une réponse.

Si tu refuses de faire le moindre effort, yapa de raison qu'on se fatigue à ta place.

Un fichier vide est inexploitable : Donc tu nous mets un fichier avec au moins 3 lignes de données correctes. pas de Mme,Mme,Mme,Mme,Mme,Mme,Mme,Mme,Mme,Mme,

Pas de Titi, Popo, Pipi...

Tu peux mettre des noms d'opérateurs, adresse et N° de téléphone, email bidon mais les données de toutes les autres colonnes doivent correspondre à la réalité (au moins en ce qui concerne le type de données.)

On doit savoir au premier coup d'oeil si une colonne reçoit des données numériques, Oui/Non, peut être vide. ou recevoir un texte variable...

Et pour les colonnes Date on doit savoir le format de date retenu.

A+

Rechercher des sujets similaires à "code vba qui fonctione reouverture"