12 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
1 févr. 2010 à 09:49
1 févr. 2010 à 09:49
Salut,
Voici un exemple
Dans le fichier Excel j'ai
Et dans le fichiers base.txt j'ai
PENTIUM;Toto
AMD;Tata
La macro qui va ajouter les lignes en dessous de celle déjé existante
Voici un exemple
Dans le fichier Excel j'ai
A B 1 NOM PRENOM 2 INTEL Titi
Et dans le fichiers base.txt j'ai
PENTIUM;Toto
AMD;Tata
La macro qui va ajouter les lignes en dessous de celle déjé existante
Sub insertion() nbligne = Range("A65536").End(xlUp).Row + 1 With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\blabla.txt", Destination:=Range( _ "A" & nbligne & "")) .Name = "base" .TextFileSemicolonDelimiter = True .Refresh End With End Sub
Je comprends pas il ne veut pas il ouvre automatiquement dans la 1ere feuille de mon classeur sans faire de reconnaissance...
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
9 févr. 2010 à 09:44
9 févr. 2010 à 09:44
Salut,
Ca dépends de séparateur de champs que tu as dans ton fichier texte.
Tabulation
Ca dépends de séparateur de champs que tu as dans ton fichier texte.
Tabulation
.TextFileTabDelimiter = TruePoint-virgule
.TextFileSemicolonDelimiter = TrueVirgule
.TextFileCommaDelimiter = TrueEspace
.TextFileSpaceDelimiter = TrueAutre caractère
.TextFileOtherDelimiter = ":"
En fait je souhaite ouvrir mon fichier dans 2 feuilles excel en même temps dans SIGMA et EXTRACTION SIGMA.
Avec le code présent ça ouvre dans ma 1ere feuille de classeur et non pas dans 1 choisie.
Que faut il faire pour choisir une feuille précise mais aussi pour que ça s'ouvre dans les deux ?
Avec le code présent ça ouvre dans ma 1ere feuille de classeur et non pas dans 1 choisie.
Que faut il faire pour choisir une feuille précise mais aussi pour que ça s'ouvre dans les deux ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
9 févr. 2010 à 10:44
9 févr. 2010 à 10:44
Re,
Pour choisir une feuille (par exemple la 3ème)
ou par nom de la feuille
Pour choisir une feuille (par exemple la 3ème)
Sub insertion_indexfeuille() With Sheets(3) nbligne = .Range("A65536").End(xlUp).Row + 1 With .QueryTables.Add(Connection:= _ "TEXT;\\f-renoutet-md\home4$\p049784\MyDocs\blabla.txt", Destination:=.Range( _ "A" & nbligne & "")) .Name = "base" .TextFileSemicolonDelimiter = True .Refresh End With End With End Sub
ou par nom de la feuille
Sub insertion_nomfeuille() With Sheets("bb") nbligne = .Range("A65536").End(xlUp).Row + 1 With .QueryTables.Add(Connection:= _ "TEXT;c:\blabla.txt", Destination:=.Range( _ "A" & nbligne & "")) .Name = "base" .TextFileSemicolonDelimiter = True .Refresh End With End With End Sub
Voilà mon code.
ça me met " La page de destination n'est pas dans la même feuille de calcul que celle dans laquelle la table de requête a été créée" et ça me souligne ce qui est en gras quand je mets débogage.
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
With Sheets("SIGMA")
nbligne = .Range("A65536").End(xlUp).Row
With .QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\troncan1\Desktop\KPI." & djnwemp & ".TXT", Destination:=Range( _
"A" & nbligne & "")) .Name = "base"
.TextFileSemicolonDelimiter = True
.Refresh
End With
End With
ça me met " La page de destination n'est pas dans la même feuille de calcul que celle dans laquelle la table de requête a été créée" et ça me souligne ce qui est en gras quand je mets débogage.
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
With Sheets("SIGMA")
nbligne = .Range("A65536").End(xlUp).Row
With .QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\troncan1\Desktop\KPI." & djnwemp & ".TXT", Destination:=Range( _
"A" & nbligne & "")) .Name = "base"
.TextFileSemicolonDelimiter = True
.Refresh
End With
End With
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
9 févr. 2010 à 11:25
9 févr. 2010 à 11:25
Re,
Déjà tu commence par enlèver ça
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
Ensuite mets le nom de la feuille d'où tu récupères ça
djnwemp = Cells(4, 3).Value
Déjà tu commence par enlèver ça
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
Ensuite mets le nom de la feuille d'où tu récupères ça
djnwemp = Cells(4, 3).Value
Ok j'ai 4 feuilles dans l'ordre:
Présentation ou il y a mon bouton et mon djnwemp
Extraction SIGMA ou je veux que mon txt s'ouvre
SIGMA ou je veux que mon txt s'ouvre aussi
KPI ou je fais mes calculs
Voici mon code pour le moment.
J'ai la même erreur qu'au dessus.
Sub KPI()
'
' MacroKPI Macro
' Macro enregistrée le 27/01/2010 par Tronc
'
djnwemp = Cells(4, 3).Value
With Sheets("SIGMA")
nbligne = .Range("A65536").End(xlUp).Row
With .QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\troncan1\Desktop\KPI." & djnwemp & ".TXT", Destination:=Range( _
"A" & nbligne & ""))
.Name = "base"
.TextFileSemicolonDelimiter = True
.Refresh
End With
End With
derlig = Sheets(2).Range("A65536").End(xlUp).Row
Range("KPI!F6").Formula = "=SUMPRODUCT(('Extraction SIGMA'!L2:L" & derlig & "-'Extraction SIGMA'!O2:O" & derlig & ">2)*1)"
Range("KPI!D6").Formula = "=SUMPRODUCT(('Extraction SIGMA'!L2:L" & derlig & "-'Extraction SIGMA'!O2:O" & 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],""O"")"
Range("F34:G34").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Extraction SIGMA'!C[10],""N"")"
Range("H34").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-4],RC[-2])"
Range("H6").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-4],RC[-2])"
Range("H24").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-4],RC[-2])"
Range("H7").Select
Range("F24").Select
ActiveCell.FormulaR1C1 = _
"=SUM(COUNTIF('Extraction SIGMA'!C[-2],""CTI ""),COUNTIF('Extraction SIGMA'!C[-2],""RAP ""),COUNTIF('Extraction SIGMA'!C[-2],""RFP ""),COUNTIF('Extraction SIGMA'!C[-2],""RTV ""),COUNTIF('Extraction SIGMA'!C[-2],""TBC ""),COUNTIF('Extraction SIGMA'!C[-2],""CTI""),COUNTIF('Extraction SIGMA'!C[-2],""RAP""),COUNTIF('Extraction SIGMA'!C[-2],""RFP""),COUNTIF('Extraction SIGMA'!C[-2],""RTV""),COUNTIF('Extraction SIGMA'!C[-2],""TBC""))"
Range("D24").Select
ActiveCell.FormulaR1C1 = _
"=SUM(COUNTIF('Extraction SIGMA'!C,""DTI ""),COUNTIF('Extraction SIGMA'!C,""DAP ""),COUNTIF('Extraction SIGMA'!C,""DFP ""),COUNTIF('Extraction SIGMA'!C,""MDI ""),COUNTIF('Extraction SIGMA'!C,""TCB ""),COUNTIF('Extraction SIGMA'!C,""DTI""),COUNTIF('Extraction SIGMA'!C,""DAP""),COUNTIF('Extraction SIGMA'!C,""DFP""),COUNTIF('Extraction SIGMA'!C,""MDI""),COUNTIF('Extraction SIGMA'!C,""TCB""))"
Dim i As Long
Dim res As Long
Dim ct As Long
res = 0
ct = 0
i = 2
With Sheets("Extraction SIGMA")
While (.Range("J" & i).Value <> "")
If (.Range("M" & i).Value <> "" And .Range("J" & i).Value = "1650") Then
res = res + ((.Range("M" & i).Value) - (.Range("L" & i).Value))
ct = ct + 1
End If
i = i + 1
Wend
Sheets("KPI").Range("D17").Value = res / ct
End With
End Sub
Présentation ou il y a mon bouton et mon djnwemp
Extraction SIGMA ou je veux que mon txt s'ouvre
SIGMA ou je veux que mon txt s'ouvre aussi
KPI ou je fais mes calculs
Voici mon code pour le moment.
J'ai la même erreur qu'au dessus.
Sub KPI()
'
' MacroKPI Macro
' Macro enregistrée le 27/01/2010 par Tronc
'
djnwemp = Cells(4, 3).Value
With Sheets("SIGMA")
nbligne = .Range("A65536").End(xlUp).Row
With .QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\troncan1\Desktop\KPI." & djnwemp & ".TXT", Destination:=Range( _
"A" & nbligne & ""))
.Name = "base"
.TextFileSemicolonDelimiter = True
.Refresh
End With
End With
derlig = Sheets(2).Range("A65536").End(xlUp).Row
Range("KPI!F6").Formula = "=SUMPRODUCT(('Extraction SIGMA'!L2:L" & derlig & "-'Extraction SIGMA'!O2:O" & derlig & ">2)*1)"
Range("KPI!D6").Formula = "=SUMPRODUCT(('Extraction SIGMA'!L2:L" & derlig & "-'Extraction SIGMA'!O2:O" & 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],""O"")"
Range("F34:G34").Select
ActiveCell.FormulaR1C1 = "=COUNTIF('Extraction SIGMA'!C[10],""N"")"
Range("H34").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-4],RC[-2])"
Range("H6").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-4],RC[-2])"
Range("H24").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[-4],RC[-2])"
Range("H7").Select
Range("F24").Select
ActiveCell.FormulaR1C1 = _
"=SUM(COUNTIF('Extraction SIGMA'!C[-2],""CTI ""),COUNTIF('Extraction SIGMA'!C[-2],""RAP ""),COUNTIF('Extraction SIGMA'!C[-2],""RFP ""),COUNTIF('Extraction SIGMA'!C[-2],""RTV ""),COUNTIF('Extraction SIGMA'!C[-2],""TBC ""),COUNTIF('Extraction SIGMA'!C[-2],""CTI""),COUNTIF('Extraction SIGMA'!C[-2],""RAP""),COUNTIF('Extraction SIGMA'!C[-2],""RFP""),COUNTIF('Extraction SIGMA'!C[-2],""RTV""),COUNTIF('Extraction SIGMA'!C[-2],""TBC""))"
Range("D24").Select
ActiveCell.FormulaR1C1 = _
"=SUM(COUNTIF('Extraction SIGMA'!C,""DTI ""),COUNTIF('Extraction SIGMA'!C,""DAP ""),COUNTIF('Extraction SIGMA'!C,""DFP ""),COUNTIF('Extraction SIGMA'!C,""MDI ""),COUNTIF('Extraction SIGMA'!C,""TCB ""),COUNTIF('Extraction SIGMA'!C,""DTI""),COUNTIF('Extraction SIGMA'!C,""DAP""),COUNTIF('Extraction SIGMA'!C,""DFP""),COUNTIF('Extraction SIGMA'!C,""MDI""),COUNTIF('Extraction SIGMA'!C,""TCB""))"
Dim i As Long
Dim res As Long
Dim ct As Long
res = 0
ct = 0
i = 2
With Sheets("Extraction SIGMA")
While (.Range("J" & i).Value <> "")
If (.Range("M" & i).Value <> "" And .Range("J" & i).Value = "1650") Then
res = res + ((.Range("M" & i).Value) - (.Range("L" & i).Value))
ct = ct + 1
End If
i = i + 1
Wend
Sheets("KPI").Range("D17").Value = res / ct
End With
End Sub
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
9 févr. 2010 à 13:57
9 févr. 2010 à 13:57
Re,
Moi je pense que tu dois tester juste la partie pour l'insertion. Le reste de calcul on verra après.
Ta variable djnwemp contient quoi?
Je n'ai pas le temsp de regarder je suis au boulot.
Si ce n'est pas confidentiel tu peux mettre ton classeur et ton fichier txt sur cjoint.com et je vais regarder plus tard.
Moi je pense que tu dois tester juste la partie pour l'insertion. Le reste de calcul on verra après.
Ta variable djnwemp contient quoi?
Je n'ai pas le temsp de regarder je suis au boulot.
Si ce n'est pas confidentiel tu peux mettre ton classeur et ton fichier txt sur cjoint.com et je vais regarder plus tard.