Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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é

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:

jpb388

XLDnaute Accro
Re : offset

Bonsoir à tous
ouvre ton userform comme ça
Code:
UserForm2.Show vbModeless
et tu pourra écrire sur ta feuille tout en conservant l'usf

ps: pardon stepple je n'avais pas rafraichi avant de poster
 

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
 

breeze

XLDnaute Occasionnel
Re : offset

J'y avait pensé mais quand la personne a une centaine de données à rentrer je voulais l'empècher de refaire "Menu"
j'ai essayer "hide" et "show". cela active la UF et déactive la cellule.
 

Discussions similaires

Réponses
4
Affichages
392
  • Résolu(e)
XL pour MAC VBA Excel
Réponses
3
Affichages
287
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…