Insertion de certaines lignes de texte vers excel
Résolu/Fermé
kit24be
Messages postés
46
Date d'inscription
samedi 12 janvier 2013
Statut
Membre
Dernière intervention
22 octobre 2017
-
26 déc. 2014 à 11:11
kit24be Messages postés 46 Date d'inscription samedi 12 janvier 2013 Statut Membre Dernière intervention 22 octobre 2017 - 27 déc. 2014 à 15:40
kit24be Messages postés 46 Date d'inscription samedi 12 janvier 2013 Statut Membre Dernière intervention 22 octobre 2017 - 27 déc. 2014 à 15:40
A voir également:
- Insertion de certaines lignes de texte vers excel
- Liste déroulante excel - Guide
- Formule excel - Guide
- Formule excel si contient texte alors texte ✓ - Forum Excel
- Dans le texte, un seul mot a réellement été écrit en lettres capitales (majuscules). quel est ce mot ? ✓ - Forum Word
- Aller à la ligne excel - Guide
5 réponses
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
27 déc. 2014 à 07:44
27 déc. 2014 à 07:44
Bonjour,
Voir ceci:
http://www.cjoint.com/data3/3LBh0bsQ84g.htm
Voir ceci:
http://www.cjoint.com/data3/3LBh0bsQ84g.htm
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
27 déc. 2014 à 08:34
27 déc. 2014 à 08:34
je ne suis pas devin, je ne connais pas ton fichier. il faut être plus explicite dans tes explications.
Avant de faire les rectifications. Il faut me donner tous les données.
Par exemple: outil1 / outil2 / outil3 etc... je ne les vois pas dans ton 1er post
Cela va être compliqué sans toutes les données.
Tu peux aussi le rectifier toi même en cherchant sur Google:
Split en vba Excel
Avant de faire les rectifications. Il faut me donner tous les données.
Par exemple: outil1 / outil2 / outil3 etc... je ne les vois pas dans ton 1er post
Cela va être compliqué sans toutes les données.
Tu peux aussi le rectifier toi même en cherchant sur Google:
Split en vba Excel
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
27 déc. 2014 à 09:06
27 déc. 2014 à 09:06
Essaie ceci:
Option Explicit
Dim valeur, mot As String
Dim count As Integer
Private Sub CommandButton1_Click()
Importer_texte
End Sub
Private Sub CommandButton2_Click()
For_X_to_Next_Ligne
End Sub
Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
Dim NoLig As Long
Dim DernLigne As Long
DernLigne = Range("A65536").End(xlUp).Row
'Instance de la feuille qui permet d'utiliser FL1 partout dans
'le code à la place du nom de la feuille
Set FL1 = Worksheets("Feuil1")
'Fixe le N° de la colonne à lire
NoCol = 1
'Utilisation du N° de ligne dans une boucle For ... Next
For NoLig = 1 To DernLigne
valeur = FL1.Cells(NoLig, NoCol)
Count_Words 'nombre de mots
If count > 1 Then
Break_String
Select Case mot
Case Is = "poids"
Case Is = "numéro"
Case Is = "quantité"
Case Else
'on supprime
Rows(NoLig & ":" & NoLig).Select
Selection.Delete Shift:=xlUp
End Select
Else
'on supprime
Rows(NoLig & ":" & NoLig).Select
Selection.Delete Shift:=xlUp
End If
Next
Set FL1 = Nothing
End Sub
Sub Count_Words()
Dim WrdArray() As String
Dim text_string As String
text_string = valeur
WrdArray() = Split(text_string, "_")
count = UBound(WrdArray()) + 1
End Sub
Sub Break_String()
Dim WrdArray() As String
Dim text_string As String
text_string = valeur
WrdArray() = Split(text_string, "_")
mot = WrdArray(1)
End Sub
'site à consulter pour split
'http://www.exceltrick.com/formulas_macros/vba-split-function/
kit24be
Messages postés
46
Date d'inscription
samedi 12 janvier 2013
Statut
Membre
Dernière intervention
22 octobre 2017
1
27 déc. 2014 à 11:12
27 déc. 2014 à 11:12
la macro ne supprime pas toutes les lignes indésirables, ci-joint le fichier texte
Merci
https://www.cjoint.com/c/DLBlty6whiT
Merci
https://www.cjoint.com/c/DLBlty6whiT
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
27 déc. 2014 à 14:24
27 déc. 2014 à 14:24
voilà, avec le fichier c'est plus facile. Les données s'inscrivent dans la colonne B .
Il y a juste les quantité qui ne sont pas différenciées
Le problème avec split, c'est qu'il sortait:
poids , 1.52769
au lieu de poids
ce qui m'a fait mettre les 5 premier caractères
pour quantité cela prend toutes les quantités 1,2,3,4 etc.
J'espère que tu as compris!
Il y a juste les quantité qui ne sont pas différenciées
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim valeur, mot As String
Dim count As Integer
Private Sub CommandButton1_Click()
Importer_texte
End Sub
Private Sub CommandButton2_Click()
For_X_to_Next_Ligne
End Sub
Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
Dim NoLig As Long
Dim DernLigne As Long
DernLigne = Range("A65536").End(xlUp).Row
'Instance de la feuille qui permet d'utiliser FL1 partout dans
'le code à la place du nom de la feuille
Set FL1 = Worksheets("Feuil1")
'Fixe le N° de la colonne à lire
NoCol = 1
'Utilisation du N° de ligne dans une boucle For ... Next
For NoLig = 1 To DernLigne
valeur = FL1.Cells(NoLig, NoCol)
Count_Words 'nombre de mots
If count > 1 Then
Break_String
mot = Left(mot, 5) '5 premier caractères
Select Case mot
Case Is = "numér"
Range("A" & NoLig).Select
Selection.Copy
ActiveCell.Offset(0, 1).Select 'sélection cellule colonne B(0 meme ligne , 1 colonne suivante)
ActiveSheet.Paste
Case Is = "quant"
Range("A" & NoLig).Select
Selection.Copy
ActiveCell.Offset(0, 1).Select 'sélection cellule colonne B(0 meme ligne , 1 colonne suivante)
ActiveSheet.Paste
Case Is = "poids"
Range("A" & NoLig).Select
Selection.Copy
ActiveCell.Offset(0, 1).Select 'sélection cellule colonne B(0 meme ligne , 1 colonne suivante)
ActiveSheet.Paste
End Select
End If
Next
Set FL1 = Nothing
End Sub
Sub Count_Words()
Dim WrdArray() As String
Dim text_string As String
text_string = valeur
WrdArray() = Split(text_string, "_")
count = UBound(WrdArray()) + 1
End Sub
Sub Break_String()
Dim WrdArray() As String
Dim text_string As String
text_string = valeur
WrdArray() = Split(text_string, "_")
mot = WrdArray(1)
End Sub
'http://www.exceltrick.com/formulas_macros/vba-split-function/
Le problème avec split, c'est qu'il sortait:
poids , 1.52769
au lieu de poids
ce qui m'a fait mettre les 5 premier caractères
pour quantité cela prend toutes les quantités 1,2,3,4 etc.
J'espère que tu as compris!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
27 déc. 2014 à 15:22
27 déc. 2014 à 15:22
et pour ne garder que les données dans la colonne A, mettre ceci:
Sub Supprime_lignes_vides()
Dim I As Long
For I = ActiveSheet.UsedRange.Rows.count To 1 Step -1
If Application.CountA(Rows(I)) = 1 Then Rows(I).Delete 'colonne B
Next I
Columns("A:A").Delete Shift:=xlToLeft 'colonne A
Worksheets("Feuil1").Range("A:A").Columns.AutoFit
End Sub
Private Sub CommandButton3_Click()
Supprime_lignes_vides
End Sub
kit24be
Messages postés
46
Date d'inscription
samedi 12 janvier 2013
Statut
Membre
Dernière intervention
22 octobre 2017
1
27 déc. 2014 à 15:40
27 déc. 2014 à 15:40
Un très grand merci, cela fonctionne très bien.
27 déc. 2014 à 08:23
merci pour la réponse. le programme est rapide mais il ne me sélectionne pas uniquement les références:
numéro_serie / quantité / poids
les autres lignes ne doivent pas êtres récupérées ex: quantité1 / quantité2 / poids1 / poids2 / outil1 / outil2 / outil3 etc...
Merci