macro récup données listes et cases à cocher

  • Initiateur de la discussion Initiateur de la discussion Batiscaf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Batiscaf

XLDnaute Occasionnel
Bonjour tous le monde,

Pfiou à peine je rentre de vacances que je me paye une méga urgence pour cet aprèm maxi, et bien sûr je sais pas faire.

Voici en PJ mon problème :
Je dois récupérer par macro, dans les cases jaunes, les valeurs des listes déroulantes et cases à cocher qui sont dans ce formulaire.
Par chance ces zones sont toujours à la même place.

Quelqu'un peut-il m'aider s'il vous plaît ?

Merci.

Batiscaf.
 

Pièces jointes

Re : macro récup données listes et cases à cocher

Re bonjour le forum,

Désolé de vous relancer mais je suis bien bloqué et je ne vois que vous pour m'aider.

Avez-vous au moins une piste à me donner, parce que le temps passe, etc etc.

Cordialement.

Batiscaf.
 
Re : macro récup données listes et cases à cocher

bonjour

une proposition en pièce jointe, j'ai pas trouvé de case à cocher 90.

le code employé :

PHP:
Public Sub bati()
Dim nom As String
Dim valeur As Integer
Dim cellule As Range

nom = Application.Caller
valeur = ActiveSheet.Shapes(nom).OLEFormat.Object.Value 'pages wiki de MichelXLD


Select Case Application.Caller
    Case "Case à cocher 73": Set cellule = Range("e21")
    Case "Case à cocher 74": Set cellule = Range("f21")
    Case "Case à cocher 79": Set cellule = Range("n21")
    Case Else: Exit Sub
End Select

cellule = IIf(valeur = 1, "Y", "N")
End Sub
salut
 

Pièces jointes

Re : macro récup données listes et cases à cocher

Merci Hervé,

Ca me paraît pas mal je vais tester.
La case à cocher 90 est dans la cellule N26.

Par contre, as-tu pu voir pour récupérer les valeurs de la liste déroulante dans les cellules V4 à V6 ?

Cordialement.

Batiscaf
 
Re : macro récup données listes et cases à cocher

Re,

J'ai un pb avec la variable "nom" qui reste vide.
lorsque j'execute la macro, ça bug après la ligne "nom = application.caller"
j'ai une erreur type 13 et je reste bloqué.

Cordialement.

Batiscaf.
 
Re : macro récup données listes et cases à cocher

re

pas d'erreur chez moi 😕

tu as ce bug lorsque tu appuies sur quel controle ?

d'autres forumeurs rencontrent'ils le meme souci ?

en piece jointe ton fichier modifié pour les zones combinées

on s'em.......ait moins si tu utilisais les controles de la boites à outils au lieu des controles des formulaires.🙁

code utilisé :

PHP:
Public Sub bati()
Dim nom As String
Dim valeur
Dim cellule As Range
Dim sh As Shape


nom = Application.Caller
Set sh = ActiveSheet.Shapes(nom)

Select Case Left(nom, 4)
    'pages wiki de MichelXLD
    Case "Case": valeur = sh.OLEFormat.Object.Value
    Case "Zone": valeur = sh.ControlFormat.List(sh.ControlFormat.ListIndex)
End Select

Select Case Application.Caller
    Case "Case à cocher 73": Set cellule = Range("e21")
    Case "Case à cocher 74": Set cellule = Range("f21")
    Case "Case à cocher 79": Set cellule = Range("n21")
    Case "Case à cocher 90": Set cellule = Range("t23")
    Case "Zone combinée 87": Range("v4") = valeur: Exit Sub
    Case "Zone combinée 88": Range("v5") = valeur: Exit Sub
    Case "Zone combinée 89": Range("v6") = valeur: Exit Sub
    Case Else: Exit Sub
End Select

cellule = IIf(valeur = 1, "Y", "N")
End Sub
salut
 

Pièces jointes

Re : macro récup données listes et cases à cocher

Re,

Tu as bien raison mais je ne suis malheureusement pas à l'origine de ce formulaire, et je vais avoir environ 200 réponses à traiter pour transferer les données sur 1 seule et unique base.

A part ça, ça bug toujours, que je lance la macro normalement ou que je le fasse pas à pas.
C'est toujours à la ligne "nom = Application.Caller"

Pour info j'ai xl 2003.

Cordialement.

Batiscaf.
 
Re : macro récup données listes et cases à cocher

re

je suis désolé, mais il n'existe pas d'incompatibilité entre application.caller et excel 2003 (c'est ma bible vba tchatienne qui me la confirmer 😉)

donc comme le fichier fonctionne chez moi (excel 2002), j'ai bien peur que ton souci vienne soit d'un mauvais copier coller, soit d'une mauvaise adaptation.

en somme je ne peux plus rien pour toi sur ce coup.

salut
 
Re : macro récup données listes et cases à cocher

Bonsoir Batiscaf, Hervé, criscris11,

Dites-donc Batiscaf et criscris11, vous ne tenteriez pas de lancer la macro bati() manuellement par hasard ? 🙂

Pour info, cette procédure d'Hervé est lié aux cases à cocher et listes déroulantes de la feuille... c'est l'action sur ces éléments qui doit déclencher la macro (pas vous 😱)...

Je viens de tester avec Excel 2003, tout semble OK.

Cordialement,

PS : Peut-être suffirait-il d'ajouter "Option Private Module" en tête de module (avec un petit "Option Explicit" 😉) pour éviter que les utilisateurs ne tentent de lancer la procédure manuellement par ALT + F8...
 
Re : macro récup données listes et cases à cocher

Bonjour le forum et les participants à ce fil,

mDF et Hervé, ça bug chez moi quelque soit la façon dont je lance la macro.

Finalement un informaticien de la boîte a pu m'aider à rendre le travail dans les temps. Il est passé par 2 fonctions.

Voici un extrait du code final. Il est peut-être pas optimal (objectif Barbatruc) mais au moins il fonctionne :

Function ValListeDeroul(NomListe As String) As Variant
Dim sh As Shape
Set sh = ActiveSheet.Shapes(NomListe)
If sh.ControlFormat.ListIndex > 0 Then
ValListeDeroul = sh.ControlFormat.List(sh.ControlFormat.ListIndex)
Else
ValListeDeroul = ""
End If
End Function

Function ValCaseACocher(Nomcac As String) As String
Dim sh As Shape
Set sh = ActiveSheet.Shapes(Nomcac)
ValCaseACocher = IIf(sh.OLEFormat.Object.Value = 1, "Y", "N")
End Function

Sub bdd_soiree()
Range("V4") = ValListeDeroul("Zone combinée 87")
Range("V5") = ValListeDeroul("Zone combinée 88")
Range("V6") = ValListeDeroul("Zone combinée 89")
Range("E21") = ValCaseACocher("Case à cocher 73")
Range("F21") = ValCaseACocher("Case à cocher 74")
Range("G21") = ValCaseACocher("Case à cocher 75")
End Sub

Cordialement.

Batiscaf.
 
Re : macro récup données listes et cases à cocher

bonjour

batiscaf, ton collegue à remplacé le application.caller de mon code par des fonctions.

par contre je ne m'explique toujours pas pourquoi ceci ne fonctionnait pas 😕

les grands mystères de l'informatique.

content que ton souci soit résolu

salut
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
3
Affichages
777
A
Réponses
0
Affichages
619
Axelle48
A
M
Réponses
8
Affichages
1 K
Merinom
M
Z
Réponses
11
Affichages
3 K
O
Réponses
2
Affichages
12 K
oveg63
O
B
Réponses
2
Affichages
2 K
biobio
B
S
  • Question Question
Réponses
0
Affichages
12 K
SwimCoachNico79
S
C
Réponses
6
Affichages
3 K
Cassetête
C
A
Réponses
0
Affichages
1 K
A
Retour