offset

breeze

XLDnaute Occasionnel
Bonjour,
j'utilise présentement la fonction "ActiveCell.Offset(0, 2).Select" pour déplacer mon curseur de 2 cases pour pouvoir entrer une autre donnée. Mais le problème c'est que le déplacement se fait mais je ne suis pas plus avancé puisque je ne peut pas écrire dans la cellule a moins de doublecliquer avec ma souris dans la cellule.
Je voudrais que quand j'ai mis ma valeur dans la première cellule et que la fonction "offset" s'exécute je n'aie qu'a réécrire une autre donnée sans avoir a double cliquer.

Pouvez vous m'aider quelqu'un ??

Merci !!
 

breeze

XLDnaute Occasionnel
Re : offset

Private Sub ComboBox1_Change()
If Intersect(ActiveCell, Range("e5:e400,l5:l400,s5:s400,z5:z400,ag5:ag400,at5:at400,ba5:ba400,bh5:bh400,bo5:bo400,bv5:bv400,ci5:ci400,cp5:cp400,cw5:cw400,dd5:dd400,dk5:dk400,dx5:dx400,ee5:ee400,el5:el400,es5:es400,ez5:ez400,fm5:fm400,ft5:ft400,ga5:ga400,gh5:gh400,go5:go400")) Is Nothing Then Exit Sub

ActiveCell.Value = ComboBox1.Value
ActiveCell.Offset(0, 2).Range("A1").Select
ComboBox1.Value = " "

End Sub

Voici la macro complète.
Je choisi un élément dans mon combobox. Le nom de cette élément vient s'inscrire dans la colonne "E" et le curseur se positionne 2 colonnes plus loin. soit en "G".
Mais une fois en "G" je voudrais pouvoir inscrire une autre donnée sans avoir au préalable double cliquer en "G"

J'espère que je suis un peu plus clair.

Merci !!
 
Dernière édition:

breeze

XLDnaute Occasionnel
Re : offset

Je vois que personne peut m'aider,
Mon problème réside dans le fait que ma macro provient d'une userform. et que même si le curseur se déplace dans une cellule, je ne peux rien écrire puisque ma userform demeure active.J'ai ajouter pour le fun "userform1.hide" et je règle mon problème sauf que je m'en cré un nouveau puisque je n'ai plus de userform et que j'en ai besoin.

Merci!!
 

laurent950

XLDnaute Accro
Re : offset

Bonsoir,

Je comprend pas bien en faite c'est a dire ?

Private Sub ComboBox1_Change()
If Intersect(ActiveCell, Range("e5:e400,l5:l400,s5:s400,z5:z400,ag5:ag400,a t5:at400,ba5:ba400,bh5:bh400,bo5:bo400,bv5:bv400,c i5:ci400,cp5:cp400,cw5:cw400,dd5:dd400,dk5:dk400,d x5:dx400,ee5:ee400,el5:el400,es5:es400,ez5:ez400,f m5:fm400,ft5:ft400,ga5:ga400,gh5:gh400,go5:go400") ) Is Nothing Then Exit Sub

ActiveCell.Value = ComboBox1.Value
ActiveCell.Offset(0, 2).Range("A1").Select
'ActiveCell.Offset(0, 2).Range("A1").Select = ComboBox1.Value
'ou
'ComboBox1.Value = ActiveCell.Offset(0, 2).Range("A1").Select

End Sub



laurent
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : offset

Bonsoir à tous

Breeze:
Dans VBE, la touche F1 est toujours de bon conseil ;)

Extrait de l'aide VBA
ShowModal, propriété
Définit un objet UserForm indiquant que son affichage est modal ou pas. En lecture seule au moment de l'exécution.
Remarques
La propriété ShowModal peut prendre les valeurs suivantes :
ValeurDescription
True(Valeur par défaut) L'objet UserForm est modal.
FalseL'objet UserForm est non modal.

Remarques
Lorsqu'un objet UserForm est modal, l'utilisateur doit fournir des informations ou fermer l'objet UserForm pour pouvoir utiliser toute autre partie de l'application. Aucun code suivant n'est exécuté tant que l'objet UserForm est masqué ou déchargé. Bien que d'autres feuilles de l'application soient désactivées lorsqu'un objet UserForm est affiché, les autres applications ne le sont pas.
Lorsqu'un objet UserForm n'est pas modal, l'utilisateur peut afficher d'autres feuilles ou fenêtres sans fermer cet objet.
Les feuilles non modales ne sont pas affichées dans la barre des tâches et ne figurent pas dans l'ordre de tabulation de la fenêtre.
Note Si vous tentez d'ouvrir un objet UserForm qui possède la propriété ShowModal dans Microsoft Office 97, une erreur au moment de l'exécution est générée car Office 97 affiche uniquement les objets UserForm de type modal. Office 97 ignore la propriété ShowModal et affiche l'objet de façon modale.

PS: Donc pour résumer
Code:
Sub a()
UserForm1.Show 0
End Sub
te permettra d'écrire dans la feuille sans masquer l'userform.
 
Dernière édition:

breeze

XLDnaute Occasionnel
Re : offset

Merci à tous, mais ça ne marche pas. Je demeure toujours dans ma userform la seule facon de voir la bande bleu écrit User Form devenir grise c'est en cliquant dans une cellule et revenir dans la cellule voulu.
si je clique sur Enter je me déplace dans la userform.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : offset

Bonjour le fil, bonjour le forum,

Breeze, pourquoi ne rajoute-tu pas une Textbox dans ton Userform. Tu tapes le texte que tu veut envoyer dans la TextBox, tu sélectionnes l'élément dans la ComboBox et le code fera le reste...
Code:
Private Sub ComboBox1_Change()
If Intersect(ActiveCell, Range("e5:e400,l5:l400,s5:s400,z5:z400,ag5:ag400,a t5:at400,ba5:ba400,bh5:bh400,bo5:bo400,bv5:bv400,c i5:ci400,cp5:cp400,cw5:cw400,dd5:dd400,dk5:dk400,d x5:dx400,ee5:ee400,el5:el400,es5:es400,ez5:ez400,f m5:fm400,ft5:ft400,ga5:ga400,gh5:gh400,go5:go400") ) Is Nothing Then Exit Sub

ActiveCell.Value = ComboBox1.Value
ActiveCell.Offset(0, 2).TextBox1.Value
End Sub
 

breeze

XLDnaute Occasionnel
Re : offset

Salut à tous,
Tout d'abord merci pour tout votre aide si ça ne fonctionne pas au moins c'estencouragement d'avoir de l'aide.
J'ai essayer "Activate" mais ça ne marche pas.
Le text box serait une idée sauf que ce qui doit apparaitre dans la colonne c'est un montant de 0 à ??? c'est plus simple de taper le montant que de rentrer toute les données considérant qu'il y a les dollars et les cents.
Mais apart la fonction "offser" qui déplace .

Existe-t-il une autre fonction du type "Range" qui placerait le curseur dans une cellule.
Car mon problème se règle quand je me positionne en pressant "enter" ou en cliquant dans une cellule.
Du style Range 2 colonnes plus loin
Merci encore mille fois !!!
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : offset

Bonjour le fil, bonjour le forum,

Peut-être tu ne trouves pas de solution parce que tu as mal posé tron problème... J'aimerais le voir sur un fichier exemple en expliquant ce que tu as avant et ce que tu voudrais après...
 

breeze

XLDnaute Occasionnel
Re : offset

Voici le fichier j'ai supprimer des feuilles mais l'essentiel est là.

1)Positionne to curseur en "E1 ou E2 ou...
2 Si la userform n'est pas à gauche , clique sur le bouton menu
3 Clique sur le combobox Activité

A ce moment le nom de l'activité se place en "E"
le coût de l'activité se place en "F"
et on se déplace vers la colonne G
Si tu essaies d'écrire en G tu n'arrives pas à le faire et c'est ce que je voudraisMa userform est active et si tu clique sur "Enter" ton curseur se promène dans ta UF et non dans le tableau
Moi je veux qu'une fois positionné en G je puisse inscrire un montant
 

Pièces jointes

  • test1.zip
    753.5 KB · Affichages: 66
  • test1.zip
    753.5 KB · Affichages: 66
  • test1.zip
    753.5 KB · Affichages: 66

Robert

XLDnaute Barbatruc
Repose en paix
Re : offset

Bonjour le fil, bonjour le forum,

Peut-être comme ça :
Code:
Private Sub ComboBox1_Change()
If Intersect(ActiveCell, Range("e6:e400,i6:i400,m6:m400,q6:q400,u6:u400,y6:y400,ac6:ac400,ag6:ag400,ak6:ak400,ao6:ao400,as6:as400,aw6:aw400,ba6:ba400,be6:be400,bi6:bi400,bm6:bm400,bq6:bq400,bu6:bu400,by6:by400,cc6:cc400")) Is Nothing Then Exit Sub
    ActiveCell.Value = ComboBox1.Value
    ActiveCell.Offset(0, 2).Select
    
    ComboBox1.Value = " "
Unload Me 'vide et ferme l'UserForm
UserForm1.Show 'pas obligatoire puisque tu peux utiliser le bouton Menu
End Sub
 

Discussions similaires

Réponses
4
Affichages
382
  • Résolu(e)
XL pour MAC VBA Excel
Réponses
3
Affichages
269

Statistiques des forums

Discussions
312 555
Messages
2 089 547
Membres
104 208
dernier inscrit
laura29180