IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

se positionner sur une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut se positionner sur une cellule
    Bonjour à tous

    après avoir recherché sans succès dans les forums, je finis par vous poser ma question.
    Voila, j'ai une feuille excel, que je nommerais "A" pour plus de compréhension , dont je me sers pour remplir les textbox d'un formulaire, ceci afin de pouvoir faire des modifications sur ces données.
    Après avoir effectué mes modifs, je les recopie dans la même feuille "A" à un autre endroit. Jusque là pas de pb!
    Puis je demande au code de m'ouvrir une autre feuille excel ,que je nomme "B", qui se trouve dans un autre classeur. Dans cette feuille "B", je demande au code de me trouver une cellule contenant un nom qui a été choisi dans une textbox de mon formulaire. Et je voudrai commencer à recopier les données des textbox de mon formulaire, 2 lignes plus bas que la cellule qui contient le nom qui a été choisi.
    Le classeur s'ouvre à la feuille choisie "B". Mais quand je demande au code de m'écrire "oui" dans la cellule où doit commencer la recopie, afin de tester si je suis bien positionnée, , il m' l'écrit dans la cellule située 2 lignes plus bas MAIS dans la feuille de départ "A".

    Voici la partie du code concerné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    'Déclaration des variables pour ouvrir Excel
    'Application Excel
    Dim appexcel As New Excel.Application
    'Classeur Excel
    Dim wbExcel As Excel.Workbook
    'Feuille Excel
    Dim wsExcel As Excel.Worksheet
    'Ouverture de l'application
    'Ouverture du fichier Excel feuilles d'horaire des ams
    Set wbExcel = appexcel.Workbooks.Open("C:\Documents and Settings\Administrateur\Bureau\VBA\TEST1.xls")
    appexcel.Visible = True
    'choisir la feuille de l'am
    Dim sam As String
    sam = am
    wbExcel.Sheets(sam).Activate
    'Recherche du nom de l'enfant
    Dim enfant As String
    Dim cible As Range
    enfant = TextBox80
    Set cible = ActiveSheet.Cells.Find(enfant, LookIn:=xlValues)
    ActiveCell.Offset(rowOffset:=2, ColumnOffset:=0).Activate
    ActiveCell = "oui"
    Merci pour votre aide
    Titemireille

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 238
    Points : 236
    Points
    236
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim sam As String
    sam = am
    wbExcel.Sheets(sam).Activate
    Dans ton code je ne trouve pas la valeur de "am".

    Un oubli ?

  3. #3
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonsoir,

    Pas testé, mais est-ce que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim appexcel As New Excel.Application
    n’ouvrirait pas une seconde occurrence d’Excel, ce qui paraît superflu ? Cela expliquerait le comportement décrit : si le second classeur état ouvert dans une autre instance d’Excel, il ne serait pas accessible à partir de la macro, et

    ferait toujours référence au classeur initial

    Que donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim wb As Workbook, sam As String, enfant As String, cible As Range
        ' Ouverture du fichier Excel feuilles d'horaire des ams
        Set wb = Workbooks.Open("C:\Documents and Settings\Administrateur\Bureau\VBA\TEST1.xls")
        ' Choisir la feuille de l'am
        sam = am
        Sheets(sam).Activate
        ' Recherche du nom de l'enfant 
        enfant = TextBox80
        Set cible = Cells.Find(enfant, LookIn:=xlValues)
        ActiveCell.Offset(2) = "oui"
    ? NB - Non testé
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Pb résolu
    merci Bigalo
    j'ai suivi ton conseil et j'ai supprimé appexcel. Bon après je me suis heurtée au fait que le nom que je cherchais était dans une cellule fusionnée. Quand je lui faisais sauter 2 lignes, le code voulait bien écrire dans la cellule de gauche mais pas celle de droite. Mais j'ai contourné le pb, voila ce que j'ai écris et qui fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Private Sub VALIDER_click()
    'ecriture dans les cases des horaires réels du mois
    Dim smois As String
    smois = ListBox2
    If smois = Range("A1") Then moispremier
    If smois = Range("E1") Then moisdeux
    If smois = Range("I1") Then moistrois
    If smois = Range("M1") Then moisquatre
    If smois = Range("Q1") Then moiscinq
    If smois = Range("U1") Then moissix
    If smois = Range("Y1") Then moissept
    If smois = Range("AC1") Then moishuit
    If smois = Range("AG1") Then moisneuf
    If smois = Range("AK1") Then moisdix
    If smois = Range("AO1") Then moisonze
    If smois = Range("AS1") Then moisdouze
    If smois = Range("AW1") Then moistreize
    Dim wb As Workbook, sam As String, senfant As String, cible As Range, scible As Range
    'Ouverture du fichier Excel feuilles d'horaire des ams
    Set wb = Workbooks.Open("C:\Documents and Settings\Administrateur\Bureau\VBA\TEST1.xls")
    'choisir la feuille de l'am
    sam = am
    Sheets(sam).Activate
    'Recherche du nom de l'enfant
    senfant = enfant
    Set cible = Cells.Find(senfant, LookIn:=xlValues).Offset(2)
    cible = TextBox2
    cible.Offset(0, 1) = TextBox3
    cible.Offset(1, 0) = TextBox5
    cible.Offset(1, 1) = TextBox6
    cible.Offset(2, 0) = TextBox8
    cible.Offset(2, 1) = TextBox9
    cible.Offset(3, 0) = TextBox11
    cible.Offset(3, 1) = TextBox12
    ' etc.....
    End Sub
    donc encore merci.

  5. #5
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonsoir,

    De rien

    Evite autant que possible les cellules fusionnées, c'est une source incessante de problèmes

    En particulier, chaque fois qu’une seule ligne est concernée, utilise dans les options d’alignement, Centrer sur plusieurs colonnes.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Se positionner sur une cellule à l'ouverture d'une feuille
    Par target111 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/05/2012, 02h58
  2. [XL-2010] Se positionner sur une cellule spécifique à la sortie d'une autre cellule
    Par ToFind dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 14/09/2011, 13h24
  3. se positionner sur une cellule definie a l avance
    Par jgidet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/10/2009, 06h16
  4. Se positionner sur une cellule
    Par lilp1 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 04/06/2009, 16h54
  5. Positionnement sur une Cellule DGV et effet ombre de Form
    Par bellak dans le forum Windows Forms
    Réponses: 7
    Dernier message: 15/12/2008, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo