Bonjour,
J'ecris ici car en ayant cherche la solution a mon probleme, je trouve des chose mais pas totalement ce que je cherche.
Je m'explique:
Dans ma boite nous avons un fichier Excel qui nous sert de "base de donnee" de toutes nos pieces. C'est en realitee un simple tableau a 6 colonnes dont la premiere (deja remplie) comporte les numeros de plans tous a la suite.
Lorsque l'on decide de faire une nouvelle piece on doit donc aller dans ce fichier Excel et choisir le premier numero de plan qui n'est pas utilise (premiere ligne dont la deuxieme colonne sera vide) et remplir les 5 autre colonnes de cette ligne avec les informations liees a cette nouvelle piece.
Je developpe un outil Excel qui configure des nouveaux assemblages et avant de generer ce nouvel assemblage je demande a l'utilisateur de remplir des champs d'une userform avec des nouveaux numero de plans.
Cela voudrait donc dire qu'il devrait prealablement ouvrir de fichier Excel "base de donnee" pour y recuperer les numero de plan dont il a besoin, les copier dans un coin puis lancer mon programme pour les rentrer dans la UserForm ce qui, en pratique, n'est justement pas tres pratique!
Je voulais donc trouver le code VBA pour que, a l'initialisation de cette userform:
- le fichier Excel base de donnee s'ouvre (sans etre visible)
- verifier que celui ci n'est pas en lecture seule (sinon je ne suis pas sur que quelqu'un d'autre n'est pas en train de l'utiliser et donc le dernier numero de plan que je vois disponible n'est peut etre plus disponible)
- si le fichier Excel n'est pas en lecture seule, je veux chercher la premiere ligne dont la deuxieme colonne est vide (pas de soucis pour coder la boucle)
- remplir toutes les lignes donc j'ai besoin pour la generation du nouvel assemblage (autant de lignes que de nouvelles pieces)
- puis fermer se fichier Excel en le sauvegardant bien entendu.
J'ai deja essaye avec le code:
Mais le fichier s'ouvre en lecture seule, donc je pourrais peut etre recuper mes numeros de plans mais jamais remplir les lignes correspondantes dans le fichier Excel...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 'Dim appXl As Excel.Application 'Set appXl = CreateObject("Excel.Application") ' 'With appXl ' .Workbooks.Open (Cells(4, 2)) ' .Visible = False 'End With
Pour information nous sommes sur Office 365 Business et les fichiers Excel sont des *.ods
Merci d'avance
Yves
Partager