Tableau excel dans VB

  • Initiateur de la discussion Initiateur de la discussion Mick
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Mick

Guest
Salut

Je cherche à ouvrir un tableau excel àpartir de Visual, faire des modifications dessus, toujours à partir de Visual (jusqu'à là , j'arrive) et surtout enregistrer ces modifications pour pouvoir réutiliser mon tableau par la suite.

voici mon code:

Dim xlApp As Object
Dim xlSheet As Object

Private Sub Form_Load()

Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.open filename:="\\Zeus\M1GMP\croguemi\Mes documents\dernier\dédéa tableau.xls"
Set xlSheet = xlApp.Worksheets(1)
xlSheet.Application.Visible = True

End Sub

Private Sub Modif_Click()
xlSheet.Cells(1, 1) = "DEDE"
End Sub

Private Sub Enregistrer_Click()
?????> xlApp.Workbooks.SaveAs filename:="\\Zeus\M1GMP\croguemi\Mes documents\dernier\dédéa tableau.xls"

End Sub

Salut
 
Salut,

Il faut affecter une variable quand tu ouvres ton classeur

dim xlclasseur as object


set xlclasseur=xlApp.Workbooks.open (filename:="\\Zeus\M1GMP\croguemi\Mes documents\dernier\dédéa tableau.xls")

private Sub Enregistrer_Click()
xlclasseur.saveas ....
End Sub


Il serait plus propre (tu t'y retrouveras mieux sur un gros projet) de rajouter une référence Microsoft Excel Object library 1X à ton projet VB comme cela on pourrait déclarer

Dim xlApp As excel.application
Dim xlSheet As excel.worksheet
Dim XlClasseur as excel.workbook


A+++
 
Merci Zon

J'avance

J'aimerais savoir comment utiliser l'évènement .Range, si c avec
Xlapp
Xlclasseur ou bien
Xlsheet

Si tu comment incrémenter une variable lorsque celle ci est une lettre

Je cherche à faire une boucle du genre:
while Xlapp.range (m & n) = ""
m = m + 1
wend

mais m est une lettre est cela ne marche pas.

Merci encore
 
Salut,


Pour incrémenter une lettre il faut passer par son code Ascii qui lui est numérique
while Xlapp.range (m & n) = ""
m = chr(asc(m) + 1)
wend

Mais à partir de la 27 ème colonne ça va être l'usine à gaz.

Il vaudra mieux passer par la proprété Cells pour incrémenter les colonnes

Dim I&,J& 'on déclare en long

I=1:j=1


while xlapp.cells(i,j)=""
j=j+1
wend

Si tu travailles avec xlapp ou xlclasseur cells(i,j) représente une cellule de la feuille active. Par contre avec xlsheet(définie bien entendu) tu travailleras sur la feuille en question même si ce n'est pas la feuille active.

A+++
 
Salut,

Pour insérer une cellule vers le bas

with xlsheet
.range("A3").insert -4121
end with


Pour insérer une ligne vers le bas

with xlsheet
.rows(3).insert -4121 'ou .range("A3").entirerow.insert -4121
end with

Il vaut mieux utliiser les constantes par leur valeur numérique que par leur valeur nommée (ici xldown). Tu trouveras les correspondances numérqiues en utilisant l'explorateur de projet dans VBE sous Excel.

A+++
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
894
Réponses
2
Affichages
2 K
Retour