VBA - Boite de dialogue pour sélection de cellule

pedrag31

XLDnaute Occasionnel
Bonjour a tous,

Je suis en train d'ébaucher une macro .xla pour importer des données entre deux classeurs Excel. Le problème est que je bloque des les premières lignes sur une histoire de boite de dialogue toute bête...:(

Lors de la sélection de cellules grâce a une boite de dialogue Inputbox, je ne peux pas basculer entre mes deux classeurs ouverts (passer d'un fichier Excel a l'autre).

Après pas mal de recherches sur le forum, je ne trouve pas le code pour appeler la boite de dialogue intégrée d'Excel pour la sélection de cellule.

Voir fichier joint pour toutes les explications...

Merci d'avance pour vos conseils ou un petit bout de code (qui se cacherait dans vos archives VBA... :) )

Bonne journée, :)
 

Pièces jointes

  • Exemple.xls
    58 KB · Affichages: 175
  • Exemple.xls
    58 KB · Affichages: 193
  • Exemple.xls
    58 KB · Affichages: 189
Dernière édition:

Risleure

XLDnaute Occasionnel
Re : VBA - Boite de dialogue pour sélection de cellule

Bonjour le Forum, pedrag31

Je n'arrive pas à lancer ton appli sur mon poste car lancement d'une 2eme session XL mais as-tu vérifié que ta boite de dialogue si c'est un userform, possède la propriété "showmodal = False"

A+
 

pedrag31

XLDnaute Occasionnel
Re : VBA - Boite de dialogue pour sélection de cellule

Bonjour Risleure, Bjr le forum,

Merci pour cette réponse éclair! :D

Il ne s'agit pas d'un userform, simplement la macro appelle des Inputbox comme boite de dialogue... Je ne sais pas dire si la propriété "Showmodal" s'applique pour les inputbox.

Je joint une version sans le menu "perso" (pour Excel 2003) mais avec un CommandButton a la place... Merci d'avance,;)

Le pb pourrait venir éventuellement de ce code pour le menu "perso":

Code:
Private Sub Workbook_Open()
Dim MenuPerso As CommandBarPopup
Dim NewMenuItem As CommandBarButton
Dim complement As Boolean

'vérifie que le fichier est installé et non ouvert comme un fichier ordinaire
    'On Error Resume Next
    'complement = AddIns("MacrosStore").Installed
    'If Err.Number > 0 Then
    '  MsgBox "Ce fichier est une macro complémentaire à installer via Outils>Macros complémentaire", vbCritical
    'End If

'ici on vérifie que le menu "Perso" existe ou pas afin d'éviter de créer un doublon
On Error Resume Next
test = Application.CommandBars(1).Controls("perso").Caption
If Err.Number > 0 Then
  Set MenuPerso = Application.CommandBars(1).Controls.Add(Type:=10, Temporary:=True)
  MenuPerso.Caption = "Perso"
Else: Set MenuPerso = Application.CommandBars(1).Controls("perso")
End If
Set NewMenuItem = MenuPerso.Controls.Add(Type:=1, Temporary:=True)
With NewMenuItem
  .Caption = "MacrosStore"
  .OnAction = "ImportNouvellesRefs"
  .FaceId = 1987
End With
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
If Application.CommandBars(1).Controls("perso").Controls.Count = 1 Then
  Application.CommandBars(1).Controls("perso").Delete
Else: Application.CommandBars(1).Controls("perso").Controls("MacrosStore").Delete
End If
On Error GoTo 0
End Sub

++
 

Pièces jointes

  • Exemple2.xls
    56.5 KB · Affichages: 142
  • Exemple2.xls
    56.5 KB · Affichages: 144
  • Exemple2.xls
    56.5 KB · Affichages: 158

Risleure

XLDnaute Occasionnel
Re : VBA - Boite de dialogue pour sélection de cellule

Re,

Désolé mais je ne peux pas lancer la barre de menu "Perso" par contre si je lance la macro manuellement
Code:
Sub ImportNouvellesRefs()
...
, je peux naviguer sans problème entre les feuilles et sélectionner des cellules.

La BDD enregistre le nom du fichier, le nom de la feuille et la zone sélectionnée. Mais je reste persuadé qu'unuserform serait plus ouple à gérer pour ce genre de boulot.

Désolé de ne pas être d'une plus grande utilité.

Bon courage
 

pedrag31

XLDnaute Occasionnel
Re : VBA - Boite de dialogue pour sélection de cellule

Re,

, je peux naviguer sans problème entre les feuilles et sélectionner des cellules.

Mon problème est de pouvoir naviguer entre les fichiers...:eek:

J'ai deux fichiers ouverts et je veux aller piocher mes refs dans l'un ou l'autre de ces fichiers. Et c'est la que tu auras sans doute un pb de "navigation"...:(

++
 
Dernière édition:
G

Guest

Guest
Re : VBA - Boite de dialogue pour sélection de cellule

Bonjour le fil,

Comme le contrôle RefEdit bug souvent j'avais pondu cet utilitaire, avec deux modules de classe.
1- pour pouvoir naviguer entre les classeurs et choisir une plage de cellule
2- pour un textbox qui affiche un message lorsqu'il est vide dans une couleur différente de la couleur originale. Ce module de classe n'est pas essentiel pour le fonctionnement de l'autre.

Je t'en ai fais un exemple, si ça convient tant mieux

A+
 
Dernière modification par un modérateur:

pedrag31

XLDnaute Occasionnel
Re : VBA - Boite de dialogue pour sélection de cellule

Bonjour Hasco, bonjour le forum,

Génial ce code!!! Merci beaucoup. Encore un bout de code que je vais garder bien au chaud. :D

Je reconnais que c'est très pratique de pouvoir utiliser ton code pour appeller un range. Vraiment impeccable.

Si j'ai bien compris, je peux appeler mes ranges de deux façons:
Code:
Range(refTextDemo.Text).[B][COLOR="Red"]xxx[/COLOR][/B]
ou bien :
Code:
TEST=szGetRefEditText(Application.Selection)
Range(TEST).[B][COLOR="Red"]xxx[/COLOR][/B]

TEST=szGetRefEditText(Range("A2:A" & [A2].End(xlDown).Row))
Range(TEST).[B][COLOR="Red"]xxx[/COLOR][/B]

Une petite question... Avec plusieurs fichier ouverts, comment fais-tu pour naviguer d'un fichier a l'autre quand l'userform est ouvert? J'ai essaye dans tous les sens, je n'arrive pas a basculer d'un fichier a l'autre... Je pense que je n'ai pas compris a 100% comment tout cela fonctionne exactement.:eek:

Merci.

Bonne journée, :)
 

Discussions similaires

Réponses
12
Affichages
574

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet