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
- Aller à la ligne excel - Guide
- Excel cellule couleur si condition texte - Guide
- Formule excel - Guide
- Site de vente en ligne particulier - Guide
5 réponses
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
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
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
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
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
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
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
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
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
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