Manipulation sous VBA d'1 fichier excel

Fermé
Lapita_10452 Messages postés 12 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 12 janvier 2010 - 2 nov. 2009 à 13:30
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 - 4 nov. 2009 à 11:48
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
A voir également:

14 réponses

pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 13:38
bonjours,
si le fichier est ouvert:
Windows("Fichier_A").Activate
Columns("B:B").Select
Selection.EntireColumn.Hidden = True
0
Lapita_10452 Messages postés 12 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 12 janvier 2010
2 nov. 2009 à 13:49
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
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 14:02
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
Lapita_10452 Messages postés 12 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 12 janvier 2010
2 nov. 2009 à 14:14
Est ce que Fichier est un string ? je l'ai essayé, ça ne marche pas.

Excuse moi si je t'embête

Merci
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 14:21
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lapita_10452 Messages postés 12 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 12 janvier 2010
2 nov. 2009 à 14:24
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
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 14:32
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
Lapita_10452 Messages postés 12 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 12 janvier 2010
2 nov. 2009 à 14:36
ça marche nickel !!! Merci :D
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 14:38
de rien bonne journé ( pourquoi faire simple quand on peut faire compliqué mdr)
0
Lapita_10452 Messages postés 12 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 12 janvier 2010
2 nov. 2009 à 17:11
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
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
2 nov. 2009 à 18:20
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
Lapita_10452 Messages postés 12 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 12 janvier 2010
4 nov. 2009 à 10:09
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
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
4 nov. 2009 à 10:57
bonjour,
pourais tu joindre le fichier sur http://www.cijoint.fr/index.php
et coller le lien dans la conversation?
merci
0
Lapita_10452 Messages postés 12 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 12 janvier 2010
4 nov. 2009 à 11:21
Re, désolé ! je peux pas le faire, c'est confidentiel , trucs d'entreprise, je peux me faire virer :S
0
pou pouille Messages postés 207 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 20 juillet 2012 31
4 nov. 2009 à 11:48
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