XL 2010 Saisie Intuitive type Google

Zoman

XLDnaute Junior
Bonjour,

j'ai trouvé des tutos pour un saisie automatique en mode recherche de Google.Pour le Combo box 1 y'a aucun soucis mais pour le Combo box 2 j'y arrive pas.

Je veux afficher le nom et prénom dés que je saisie la première lettre du nom mais avec les noms et prénoms qui se trouve dans la cellule CD.

En espérant être claire dans mes explications, merci de vos réponses.

Je vous mets le fichier en pj
 

Pièces jointes

  • Copie de SaisieIntuitiveGoogle.xls
    109.5 KB · Affichages: 20
Solution
re
il faut bien identifier sur le code toutes les lignes ou figure le nom de la feuille et les modifier en conséquence
dans le nouveau classeur il ne faut pas oublier de nommer les plages ou se trouve les données
liste pour la combobox1 et liste2 pour la combobox2
cordialement
galougalou

Zoman

XLDnaute Junior
C'est bon je vous ai envoyé le fichier que je travaille.

J'ai mis le code mais quand je clique sur lancer l’enregistrement en PDF ça prends en compte les cellules AX1 et AY1 et je veux pas ça. il manque plus le bouton de remise à zéro.

Merci
 

GALOUGALOU

XLDnaute Accro
re
J'ai mis le code mais quand je clique sur lancer l’enregistrement en PDF ça prends en compte les cellules AX1 et AY1 et je veux pas ça. il manque plus le bouton de remise à zéro.
dans un fil 36 votre demande
Enrichi (BBcode):
dans ce cas aussi je veux bloquer le bouton enregistrement en pdf, le bouton ajout onglet et la fermeture du fichier excel.

cela me laisse penser que vous n'avez pas saisi l'utilité de la formule des cellules ax1 et ay1

pour faire simple confirmez vous votre demande du fil 36, si tel est le cas, il faut prendre en compte le resultat des formules de ax1 et ay1
cordialement
galougalou
 

Zoman

XLDnaute Junior
re

dans un fil 36 votre demande
Enrichi (BBcode):
dans ce cas aussi je veux bloquer le bouton enregistrement en pdf, le bouton ajout onglet et la fermeture du fichier excel.

cela me laisse penser que vous n'avez pas saisi l'utilité de la formule des cellules ax1 et ay1

pour faire simple confirmez vous votre demande du fil 36, si tel est le cas, il faut prendre en compte le resultat des formules de ax1 et ay1
cordialement
galougalou

je confirme bien ma demande du fil 36 mais quand j’enregistre le fichier pdf Je vois apparaître les cellules ax1 et ay1 dans le fichier pdf, je ne veux pas que ça apparaisse.

Avez vous ouvert le document en PJ Intitulé testV1. Essayez d’enregistrer le fichier en pdf et vous verrez le résultat.

Merci
 

Zoman

XLDnaute Junior
ok ça marche, j’arrive pas à mettre ce code là a ma première feuille :

Option Explicit

Private Sub Worksheet_Deactivate()
Dim f1 As String
f1 = Range("ay1")
If Sheets(f1).Range("ax1") = 1 Then
Sheets(f1).Select
MsgBox "Renseigner la cellule A21 !"
End If

End Sub

je ne sais pas est ce nécessaire ? Si je le mets, ça me fait des erreurs du coup je l’ai enlevé.

Merci à demain
 

GALOUGALOU

XLDnaute Accro
re
au vu de votre demande c'est utile
c'est l'expression option explicit qui génère le bug
coller ce code en bas de la feuille test
VB:
Private Sub Worksheet_Deactivate()
Dim f1 As String
f1 = Range("ay1")
If Sheets(f1).Range("ax1") = 1 Then
Sheets(f1).Select
MsgBox "Renseigner la cellule A21 !"
End If

End Sub
cordialement
 

Zoman

XLDnaute Junior
Bonjour Galougalou,

J'ai mis le code dans la feuille et il marche bien maintenant il me reste juste de mettre le bouton RAZ.
J'ai essayé avec ce code ci-dessous mais il prend en compte que la première feuille et si je clique sur le bouton ça efface que la plage "G15:H16" et la cellule A21 :

Sub effacer_tous_les_onglets()
For i = 1 To Sheets.Count 'boucle sur tous les onglets
Sheets(i).Select ' selection des onglets un par un pour appliquer les procédures suivantes
Range("G15:H16").ClearContents 'effacement dans la feuille sélectionnée
Range("A21") = "" 'cellule fusionnée problèmatique pour clearcontents, remplacé par ""
Next i
Sheets("Test").Select 'selection de la feuille Test
End Sub

Donc si je clique sur le bouton RAZ, je veux que ça efface les deux dates qui sont sur la cellule A7, le nom et prénom (Cellule A8), Établissement (cellule D9), la plage "E15:H16", la cellule E17, la cellule A21, le nom et prénom qui est sur la cellule D21.

Je veux que tout s'efface même les données qui sont dans les autres onglets créés.

Merci
 

GALOUGALOU

XLDnaute Accro
re zoman bonjour le forum
bon
j'ai essaye d'écrire les codes simplement, pour que vous puissiez vous les appropriés.
votre demande
"nom et prénom qui est sur la cellule D21. " je pense que c'était la cellule d23.
procédure d'effacement
deux boucles.
une dans le classeur avec exclusion des feuilles b et c. si cela ne vous convient pas il suffit d'effacer dans le code les lignes rouges.
dans la feuille une boucle sur les textbox et les combobox

Enrichi (BBcode):
Sub effacer_tous_les_onglets()

  Dim ws As String 'déclaration de variable
  Dim f1 As String 'déclaration de variable
  Dim f2 As String 'déclaration de variable
 
  f1 = Sheets("B").Name 'affectation à la variable du nom de l'onglet
  f2 = Sheets("C").Name 'affectation à la variable du nom de l'onglet
 
For i = 1 To Sheets.Count 'boucle sur tous les onglets
Sheets(i).Select ' selection des onglets un par un pour appliquer les procédures suivantes
 ws = ActiveSheet.Name
If ws <> f1 Then 'effacement à l'exception de la feuille B
If ws <> f2 Then 'effacement à l'exception de la feuille c

Range("G15:H16") = "" 'effacement cellule dans la feuille sélectionnée
Range("A21") = "" 'effacement cellule dans la feuille sélectionnée
Range("E17") = ""  'effacement cellule dans la feuille sélectionnée
  For Each x In Sheets(ws).OLEObjects 'boucle sur toutes les textbox et combobox
           If TypeName(x.Object) = "TextBox" Then x.Object.Value = "" 'effacement des textbox
             If TypeName(x.Object) = "ComboBox" Then x.Object.Value = "" 'effacement des combobox
    Next x ' fin de boucle pour les textbox et combobox

  End If ' fin de condition 1
End If ' fin de condition 2
    Next i ' fin de boucle pour le classeur
     MsgBox "Effacement terminé"
    Sheets("Agent").Select 'selection de la  feuille Agent
  
End Sub
ne soyez pas surpris par le comportement des textbox et combobox lors de l'effacement. il faut parfois un petit délai avant de voir le résultat de l'effacement
je pense que maintenant vous avez votre classeur fonctionnel
cordialement
galougalou
 

Pièces jointes

  • Copie de Teste v11.xlsm
    132.3 KB · Affichages: 14

Zoman

XLDnaute Junior
Bonjour Galougalou, bonjour le forum

Merci beaucoup c'est exactement ce que je voulais,
"nom et prénom qui est sur la cellule D21. " je pense que c'était la cellule d23.
C'était bien la cellule d23 le nom et le prénom je me suis trompé. Tout marche sur la document Copie Teste v11 mais quand je veux l'adapter avec mon propre document ça marche pas.

J'ai les même feuilles, même code mais quand je clique sur effacement, je vois "erreur d'exécution 1004 Impossible de lire la propriété Objet de la classe OLEObject. " et quand je clique sur débogage je vois ça en jaune "If TypeName(x.Object) = "TextBox" Then ... "

Je comprends pas trop alors que c'est le même document.

Pouvez vous m'aider svp ?

Merci
 

GALOUGALOU

XLDnaute Accro
re zoman bonsoir le fil

que dire, sinon qu'une seule virgule peut suffire à créer l'erreur.
deux problèmes possibles

1er problème _il faut dans votre classeur trois feuilles au minimum qui se nomme une feuille Agent une feuille C une feuille B ( en respectant la casse).
2eme problème. les feuilles sont-elles verrouillées ?
3eme une seule virgule en trop dans le code.

pour tester et essayer de localiser votre problème je vous propose de dissocier vos macros
copier coller le code ci-dessous dans un nouveau module

Enrichi (BBcode):
Sub tester_boucle_onglets()
     MsgBox "tester la boucle"
  Dim ws As String 'déclaration de variable
  Dim f1 As String 'déclaration de variable
  Dim f2 As String 'déclaration de variable

  f1 = Sheets("B").Name 'affectation à la variable du nom de l'onglet
  f2 = Sheets("C").Name 'affectation à la variable du nom de l'onglet

For i = 1 To Sheets.Count 'boucle sur tous les onglets
Sheets(i).Select ' selection des onglets un par un pour appliquer les procédures suivantes
ws = ActiveSheet.Name
If ws <> f1 Then 'effacement à l'exception de la feuille B
If ws <> f2 Then 'effacement à l'exception de la feuille c

MsgBox ws

  End If ' fin de condition 1
End If ' fin de condition 2
    Next i ' fin de boucle pour le classeur
     MsgBox "terminé, fonctionnement correct"
    Sheets("Agent").Select 'selection de la  feuille Agent

End Sub
Sub test_sur_combo_text()
     MsgBox "tester l'effacement textbox et combobox"
     ws = ActiveSheet.Name
  For Each x In Sheets(ws).OLEObjects 'boucle sur toutes les textbox et combobox
           If TypeName(x.Object) = "TextBox" Then x.Object.Value = "" 'effacement des textbox
             If TypeName(x.Object) = "ComboBox" Then x.Object.Value = "" 'effacement des combobox
    Next x ' fin de boucle pour les textbox et combobox
      MsgBox "terminé,fonctionnement correct"
End Sub

Sub test_effacer_cellules()
     MsgBox "tester l'effacement des cellules"
Range("G15:H16") = "" 'effacement cellule dans la feuille sélectionnée
Range("A21") = "" 'effacement cellule dans la feuille sélectionnée
Range("E17") = ""  'effacement cellule dans la feuille sélectionnée

     MsgBox " terminé, fonctionnement correct"
    Sheets("Agent").Select 'selection de la  feuille Agent

End Sub

le 1er code contrôle l'exécution de la boucle et l’activation des feuilles. lancer la macro.

test.gif


ensuite le plus long, dans chaque feuille , une par une, lancer les macros (même principe que la video) test_sur_combo_text et test_effacer_cellules.

cela devrait vous permettre d'identifier à quel niveau se trouve votre problème.
vous avez pu le vérifier dans le classeur, les codes fonctionnent, il s'agit juste d'un problème d'adaptation.
faite ça a tête reposé, calmement, vous allez y arriver.
cordialement
galougalou
 

Zoman

XLDnaute Junior
Bonjour Galougalou, bonjour le forum,

Les feuilles ne sont pas verrouillées et il n'y a pas de virgule en trop. J'ai essayé le code test boucle onglet pour localiser l'erreur mais quand clique sur le bouton effacer je vois comme message "terminé fonctionnement correct mais ça efface rien du tout.

Je comprends pas le "ws" et OLEDObject dans le code, je pense que c'est là ou il y'a erreur

Merci
 

Zoman

XLDnaute Junior
Re-bonjour Galougalou, Bonjour le forum,

Je pense que j'ai trouvé le problème, c'est le logo de l'entreprise dans le document qui correspond dans le presse papier à Object 5 =INCORPORER("MSPhotoEd.3";""

Quand j'enlève l'image, le code d'éffacement marche bien mais quand je remets l'image ça fait la même erreur.

Avez-vous une solution ?

Bien cordialement
 

GALOUGALOU

XLDnaute Accro
re zoman
content que vous ayez pu identifier le problème
pour l'instant je n'ai pas de solution immédiate.
le plus simple
poser la question sur le forum en ouvrant un autre fil, car votre problématique n'a plus rien à voir avec le titre
cordialement
galougalou
 

Zoman

XLDnaute Junior
re Galougalou,

J'ai changé le logo de l'entreprise avec une autre image et ça marche.

Je vous remercie de m'avoir aider tout au long de la réalisation de ce classeur avec des codes macros qui étaient pas du tout évident et j'en suis trés reconnaissant.

Merci encore !

Cdlt
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote