Manipulation sous VBA d'1 fichier excel

Bonjour,

Je suis arrivé à ouvrir un fichier excel (fichier_A) avec un code VBA sous un autre fichier excel (Fichier_B) , je voulais savoir comment modifier le fichier_A, masquer des colonnes par exemple, depuis le code VBA du fichier_B, j'espère que ma question est assez claire.

Merci de votre réponse

Lapita
Configuration: Windows XP Internet Explorer 6.0

14 réponses

  1. bonjours,
    si le fichier est ouvert:
    Windows("Fichier_A").Activate
    Columns("B:B").Select
    Selection.EntireColumn.Hidden = True
    0
    1. Bonjour, Voilà mon code où j'ai integré le tien

      Public Sub Parcourir()
      Dim fn
      fn = Application.GetOpenFilename 'can add parameters. See help for details.
      If fn = False Then
      MsgBox "Nothing Chosen"
      Else
      MsgBox "You chose " & fn
      'now that you have the name, you can open it or do something else
      End If

      Workbooks.Open fn
      Windows(fn).Activate
      Columns("B:B").Select
      Selection.EntireColumn.Hidden = True
      End Sub

      -----------------------------------

      Le programme bug au niveau de Windows(fn).Activate .. ça peut venir d'où le problème ?

      merci enormément pour ton aide

      Lapita
      0
  2. cela ne marche pas à cause d'une chose :
    ici fn est le nom du fichier complet (c'est a dire qu'il contient aussi le chemin ex C:\...\)
    pour ma part j'ai déja rencontrer le meme problème que toi et mon remède est de travailler toujours dans le meme dossier, ainsi je compte le nombre de caractère qui composent le dossier , je le soustrait au nombre total de caratère du fichier et le tour est joué (seulement ca ne marche que pour un dossier fixe) ex:

    dim ThePath,TheFile,A,B,C as string
    ThePath = "C:\...\"
    TheFile = ActiveWorkbook.FullName
    B = Len(ThePath) 'renvoie longueur du Chemin
    A = Len(TheFile) ' " " " " " fichier
    C = A - B 'supprime le chemin du fichier
    Fichier = Right(TheFile, C)

    ici donc la fenetre à activer est : Fichier
    0
    1. Est ce que Fichier est un string ? je l'ai essayé, ça ne marche pas.

      Excuse moi si je t'embête

      Merci
      0
      1. Re,
        ca me dérange pas ... ce me sort un peut du boulot :p
        heu pour ma part j'ai mis fichier en string et cela fonctionne ( je l'avais juste oublier dans mon message précédent.)
        sinon qu'elle est l'erreur qui se produit ? sur quel ligne ?
        tu peut metre un msgbox avant d'ouvrir la fenetre Fichier pour vérifier le nom
        msgbox Fichier
        0
        1. Re, mon msgbox me sort rien donc je crois j'ai dû faire une erreur kelke part, je te renvoi le code si ça ne te dérange pas de jetter un coup d'oeil dessus.

          Public Sub Parcourir()

          Dim fn
          Dim ThePath, TheFile, A, B, C As String
          Dim Fichier As String

          fn = Application.GetOpenFilename 'can add parameters. See help for details.

          If fn = False Then
          MsgBox "Nothing Chosen"
          Else
          MsgBox "You chose " & fn
          'now that you have the name, you can open it or do something else
          End If

          'fn.Open

          Workbooks.Open fn
          ThePath = fn
          TheFile = ActiveWorkbook.FullName
          B = Len(ThePath) 'renvoie longueur du Chemin
          A = Len(TheFile) ' " " " " " fichier
          C = A - B 'supprime le chemin du fichier
          Fichier = Right(TheFile, C)

          MsgBox Fichier

          Windows(Fichier).Activate

          Columns("B:B").Select

          Selection.EntireColumn.Hidden = True

          End Sub
          0
          1. je suis bète je vois pas pourquoi on se prend la tete , lorsque tu fait ton workbook open, il pointe directement sur le fichier choisi, je te propose donc d'éfacer un bonne partie de mon code qui sert a rien et de garder que le principal:

            Public Sub Parcourir()
            Dim fn
            fn = Application.GetOpenFilename 'can add parameters. See help for details.
            If fn = False Then
            MsgBox "Nothing Chosen"
            Else
            MsgBox "You chose " & fn
            'now that you have the name, you can open it or do something else
            End If
            Workbooks.Open fn
            Columns("B:B").Select
            Selection.EntireColumn.Hidden = True
            End Sub
            0
            1. ça marche nickel !!! Merci :D
              0
              1. de rien bonne journé ( pourquoi faire simple quand on peut faire compliqué mdr)
                0
                1. Re, je reviens vers toi pour une toute petite question.

                  Est ce qu'il ya moyen d'avoir un UserForm (code VBA du fichier_B) ouvert qui sert à afficher et masquer les colonnes du fichier_A mais pouvoir en même temps modifier les cellules du fichier_A ???

                  Merci

                  Lapita
                  0
                  1. oui bien sur ,
                    lorsque tu est dans le visual basic editor alors tu fait inserer un Userform
                    et sur cet Userform ( dans l'arboressence a gauche) tu clic droit dessus et tu fait afficher le code
                    et dans ce code tu met ce que tu veut, comme
                    Columns("B:B").Select
                    Selection.EntireColumn.Hidden = True
                    et ensuite les modif des cellules tout dépend de ce qu'il y avoir dedan!
                    0
                    1. Bonjour,

                      c'est bien ça que j'ai fait. Mais quand le userform du fichier_B est affiché (pour cacher les colonnes du fichier_A) les cellules du fichier_A sont bloquées, je ne peux pas changer leur valeur par exemple.

                      Est ce qu'il y a moyen d'activer le fichier_A pour changer la valeur de ses cellules tout en laissant le userform1 du fichier_B pour cacher ou afficher les colonnes ?

                      Merci pour ton aide

                      Elie
                      0
                      1. Re, désolé ! je peux pas le faire, c'est confidentiel , trucs d'entreprise, je peux me faire virer :S
                        0
                        1. tu peut essayer de regarder les fonction que j'ai mis dans le workbook activate,
                          le code de la textbox de l'userform
                          et t'en inspirer
                          http://www.cijoint.fr/cjlink.php?file=cj200911/cijLavd7nb.xls
                          0

                          Discussions similaires

                          manipulation involontaire

                          3 réponses