A voir également:
- Code VBA pour un TXT dans Excel
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Code asci - Guide
- Si et excel - Guide
- Code puk bloqué - Guide
12 réponses
garion28
Messages postés
1545
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
406
29 janv. 2010 à 10:39
29 janv. 2010 à 10:39
pour l'acces au fichier texte:
http://www.info-3000.com/vbvba/fichiertexte.php
ensuite pour entrer une valeur dans une cellule:
sheets("nom de la feuille").range("adresse de la cellule, exemple A1").value="ta valeur"
tu devrai surement utiliser un truc comme par exemple workbook("nom du fichier") devant le sheets pour identifier sur quel fichier tu récupere ou écrit la valeur
http://www.info-3000.com/vbvba/fichiertexte.php
ensuite pour entrer une valeur dans une cellule:
sheets("nom de la feuille").range("adresse de la cellule, exemple A1").value="ta valeur"
tu devrai surement utiliser un truc comme par exemple workbook("nom du fichier") devant le sheets pour identifier sur quel fichier tu récupere ou écrit la valeur
garion28
Messages postés
1545
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
406
29 janv. 2010 à 11:21
29 janv. 2010 à 11:21
sur quel point as tu des problèmes ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai pas mal d'erreur et bon j'ai déjà un code assez complet dans mon VBA et j'ai du mal à tout ajouter les lignes sans tout planter
Voilà mon code sans ajouter ce que je veux.
Sub KPI()
djnwemp = Cells(4, 3).Value
Workbooks.OpenText Filename:="C:\Documents and Settings\troncan1\Desktop\KPI." & djnwemp & ".XLS", _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), _
TrailingMinusNumbers:=True
derlig = Sheets(1).Range("A65536").End(xlUp).Row
Range("KPI!D17").Formula = "=Sumproduct(('Extraction SIGMA'!J4:J" & derlig & "<>1990)*('Extraction SIGMA'!M4:M" & derlig & "<>"""")*('Extraction SIGMA'!M4:M" & derlig & "-'Extraction SIGMA'!L4:L" & derlig & "))/Sumproduct(('Extraction SIGMA'!J4:J" & derlig & "<>1990)*('Extraction SIGMA'!M4:M" & derlig & "<>""""))"
Range("KPI!F6").Formula = "=SUMPRODUCT(('Extraction SIGMA'!O4:O" & derlig & "-'Extraction SIGMA'!L4:L" & derlig & ">2)*1)"
Range("B8").Select
Windows("KPI." & djnwemp & ".xls").Activate
Sheets("KPI").Select
Range("D34:E34").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Extraction SIGMA'!C[12],""OUI"")"
Range("F34:G34").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Extraction SIGMA'!C[10],""NON"")"
Range("H34").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-4],RC[-2])"
Range("H35").Select
End Sub
Voilà mon code sans ajouter ce que je veux.
Sub KPI()
djnwemp = Cells(4, 3).Value
Workbooks.OpenText Filename:="C:\Documents and Settings\troncan1\Desktop\KPI." & djnwemp & ".XLS", _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), _
TrailingMinusNumbers:=True
derlig = Sheets(1).Range("A65536").End(xlUp).Row
Range("KPI!D17").Formula = "=Sumproduct(('Extraction SIGMA'!J4:J" & derlig & "<>1990)*('Extraction SIGMA'!M4:M" & derlig & "<>"""")*('Extraction SIGMA'!M4:M" & derlig & "-'Extraction SIGMA'!L4:L" & derlig & "))/Sumproduct(('Extraction SIGMA'!J4:J" & derlig & "<>1990)*('Extraction SIGMA'!M4:M" & derlig & "<>""""))"
Range("KPI!F6").Formula = "=SUMPRODUCT(('Extraction SIGMA'!O4:O" & derlig & "-'Extraction SIGMA'!L4:L" & derlig & ">2)*1)"
Range("B8").Select
Windows("KPI." & djnwemp & ".xls").Activate
Sheets("KPI").Select
Range("D34:E34").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Extraction SIGMA'!C[12],""OUI"")"
Range("F34:G34").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Extraction SIGMA'!C[10],""NON"")"
Range("H34").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-4],RC[-2])"
Range("H35").Select
End Sub
En gros je veux intégrer mon TXT après l'ouverture du classeur Excel et avant l'exécution des formules puisqu'elles se basent sur mes données qui sont dans mon TXT...
garion28
Messages postés
1545
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
406
29 janv. 2010 à 13:50
29 janv. 2010 à 13:50
utilise l'évenement open de workbook pour l'importation de ton fichier txt sur excel et pour tout ce que tu veu que ca fasse a l'ouverture du fichier
J'ai presque trouvé ce que je voulais. Par contre il me crée une nouvelle feuille dans mon fichier excel alors que je veux qu'il copie les infos dans une feuille précise qui est 'Extraction SIGMA'
Le problème est certainement ActiveSheet.Move Before:=Workbooks("KPI.20100128.xls").Sheets("Extraction SIGMA") mais je ne connais pas la commande...
Option Explicit
Dim MonFichier As Variant
Public Monclasseur As String
Dim Nblig As Long, i As Long, j As Long
Public Monchemin As String
Sub Importation()
'
' Importation Macro
'
'
Dim MonFichier As Variant
MonFichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If MonFichier <> False Then
Range("A1").Select
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\troncan1\Desktop\KPI.20100128.txt", Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:= _
False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1) _
, Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1)), TrailingMinusNumbers _
:=True
ActiveSheet.Move Before:=Workbooks("KPI.20100128.xls").Sheets("Extraction SIGMA")
Range("A1").Select
End If
End Sub
Le problème est certainement ActiveSheet.Move Before:=Workbooks("KPI.20100128.xls").Sheets("Extraction SIGMA") mais je ne connais pas la commande...
Option Explicit
Dim MonFichier As Variant
Public Monclasseur As String
Dim Nblig As Long, i As Long, j As Long
Public Monchemin As String
Sub Importation()
'
' Importation Macro
'
'
Dim MonFichier As Variant
MonFichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If MonFichier <> False Then
Range("A1").Select
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\troncan1\Desktop\KPI.20100128.txt", Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:= _
False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1) _
, Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1)), TrailingMinusNumbers _
:=True
ActiveSheet.Move Before:=Workbooks("KPI.20100128.xls").Sheets("Extraction SIGMA")
Range("A1").Select
End If
End Sub
garion28
Messages postés
1545
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
406
29 janv. 2010 à 15:35
29 janv. 2010 à 15:35
l'enregistreur de macro sert aussi a trouver la bonne syntaxe ^^
j'ai trouvé ca:
Sheets("nom de la feuille a déplacer").Move Before:=Workbooks("fichier où le déplacer").Sheets(numéro ou nom de la feuille qui suivra celle déplacé)
j'ai trouvé ca:
Sheets("nom de la feuille a déplacer").Move Before:=Workbooks("fichier où le déplacer").Sheets(numéro ou nom de la feuille qui suivra celle déplacé)
En fait le problème est pas de mettre une feuille avant l'autre, je veux que lorsque la macro m'intègre mon fichier texte il ne se mette pas avant une feuille mais dans une feuille précise.
La il en crée une nouvelle...
La il en crée une nouvelle...
garion28
Messages postés
1545
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
406
29 janv. 2010 à 16:02
29 janv. 2010 à 16:02
dans ce cas, le ActiveSheet.Move Before:=Workbooks("KPI.20100128.xls").Sheets("Extraction SIGMA") est completement inutile puisqu'il déplace une feuille
il faudrai lire chaque ligne du fichier et écrire dans la cellule voulu de la feuille voulu
j'espere avoir compris le problème (ca reste un peu flou dans ma tête)
il faudrai lire chaque ligne du fichier et écrire dans la cellule voulu de la feuille voulu
j'espere avoir compris le problème (ca reste un peu flou dans ma tête)