Fermeture ou fichier excel en arrière plan
Résolu
Shana00
Messages postés
87
Date d'inscription
Statut
Membre
Dernière intervention
-
Shana00 Messages postés 87 Date d'inscription Statut Membre Dernière intervention -
Shana00 Messages postés 87 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dois aller piocher des valeurs d'un excel pour les mettre dans un autre sauf que pour aller piocher les valeurs je dois ouvrir le excel , j'aurai voulu que le excel s'ouvre et se faire ou alors qu'il se mette en arrière plan , avec mon code ça ouvre le excel directement sur mon écran
Apres j'aurai une question par rapport a mon travail et qui a rien avoir avec le sujet , en faite les cases que je vais récupérer sont toujours au même endroit mais admettons la personne insert une ligne ou une colonne sans faire exprès du coup la valeur serai decaller et sa ne serai pu la bonne valeur qui est reporté sur le tableau global , il y a une solution pour régler ce problème ?
Je suis désolé je débute en VBA excel et merci pour ceux qui vont répondre
Je dois aller piocher des valeurs d'un excel pour les mettre dans un autre sauf que pour aller piocher les valeurs je dois ouvrir le excel , j'aurai voulu que le excel s'ouvre et se faire ou alors qu'il se mette en arrière plan , avec mon code ça ouvre le excel directement sur mon écran
Apres j'aurai une question par rapport a mon travail et qui a rien avoir avec le sujet , en faite les cases que je vais récupérer sont toujours au même endroit mais admettons la personne insert une ligne ou une colonne sans faire exprès du coup la valeur serai decaller et sa ne serai pu la bonne valeur qui est reporté sur le tableau global , il y a une solution pour régler ce problème ?
Je suis désolé je débute en VBA excel et merci pour ceux qui vont répondre
Dim a As Integer
Dim Feuille As String
Dim fin As String
Dim i As Integer
Dim NomFic As String
Dim cheminComplet As String
Dim wb As Workbook
cheminComplet = Application.GetOpenFilename
Set wb = Workbooks.Open(cheminComplet)
NomFic = Split(cheminComplet, "\")(UBound(Split(cheminComplet, "\")))
a = 43
fin = Workbooks(NomFic).Sheets.Count
For i = 1 To fin
Feuille = Workbooks(NomFic).Sheets(i).Name
Cells(a, 18).FormulaR1C1 = "='[" & NomFic & "]" & Feuille & "'!R29C17"
Cells(a, 19).FormulaR1C1 = "='[" & NomFic & "]" & Feuille & "'!R38C11"
Cells(a, 20).FormulaR1C1 = "='[" & NomFic & "]" & Feuille & "'!R67C14"
Cells(a, 21).FormulaR1C1 = "='[" & NomFic & "]" & Feuille & "'!R67C15"
Cells(a, 23).FormulaR1C1 = "='[" & NomFic & "]" & Feuille & "'!R17C17"
Cells(a, 24).FormulaR1C1 = "='[" & NomFic & "]" & Feuille & "'!R18C17"
Cells(a, 36).FormulaR1C1 = "='[" & NomFic & "]" & Feuille & "'!R26C17"
Cells(a, 37).FormulaR1C1 = "='[" & NomFic & "]" & Feuille & "'!R21C17"
Cells(a, 40).FormulaR1C1 = "='[" & NomFic & "]" & Feuille & "'!R100C9"
a = a + 1
Next i
End Sub
A voir également:
- Fermeture ou fichier excel en arrière plan
- Fichier bin - Guide
- Youtube en arrière plan - Guide
- Arrière plan - Guide
- Fichier epub - Guide
- Fichier rar - Guide
1 réponse
Bonjour,
1.1 - pour réactiver le fichier contenant la macro (et donc passer le fichier ouvert en arrière plan) :
après la ligne :
écrire :
1.2 - pour fermer le fichier ouvert (sans le modifier) :
2 - il existe peut-être un solution, mais il faudrait savoir comment tu peux identifier la position de la donnée à copier lorsque des lignes et/ou des colonnes sont insérées (libellé de donnée, titre de colonne, ... )
1.1 - pour réactiver le fichier contenant la macro (et donc passer le fichier ouvert en arrière plan) :
après la ligne :
Set wb = Workbooks.Open(cheminComplet).
écrire :
Thisworkbook.Activate.
1.2 - pour fermer le fichier ouvert (sans le modifier) :
wb.Saved = True wb.Close
2 - il existe peut-être un solution, mais il faudrait savoir comment tu peux identifier la position de la donnée à copier lorsque des lignes et/ou des colonnes sont insérées (libellé de donnée, titre de colonne, ... )
, du coup la macro s'arrête a cette ligne et ne va pas jusqu'à Thisworkbook.Activate
Il y a une erreur ???, Elle se bloque ????, Elle rend la main ????
En programmation, plus on est rigoureux, moins on a de problème !
Quand tu écris :
Cells(a, 18).FormulaR1C1 = ...;
Excel ne sait pas forcement où se situe la cellule dans laquelle tu veux écrire !
Quelque chose comme :
Thisworkbook.Worksheets(1).Cells(a, 18).FormulaR1C1 = ...;
serait moins incertain.
D'autre part, tu emploies sheet à la place de worksheet, sheet représente une feuille du classeur qui n'est pas forcément une feuille de calcul, c'est à dire qu'elle ne contient pas forcément des Cells !!!
Aussi, tu définis wb mais tu ne t'en sert pas, il serait plus simple d'écrire :
NomFic = wb.Name
ou encore
Feuille = wb.Sheets(i).Name
Patrice
Je commence a peine le VBE du coup les workbook , worksheet et sheet defois j'ai du mal