Macro Excel qui marche pas :-(

Fermé
francois13100 Messages postés 4 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 3 février 2007 - 30 janv. 2007 à 22:59
francois13100 Messages postés 4 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 3 février 2007 - 3 févr. 2007 à 13:32
Bonjour, je cherche a executer une macro qui a l'air simple sur excel: elle doit "reperer" le chiffre entre parentheses dans la colonne A, que j'importe depuis un Pdf en copié-collé.
Pour exemple , le texte affiché est blalbalbabla(1234)blbabab(321)

J'ai donc penser définir les parenthèses comme limites, mais je ne sais pas finaliser l'ecriture... quelqu'un peut-il SVP corriger ce brouillon qui ne fonctionne pas:

Sub SandS()

Dim Text As String
Dim Cd As String
Dim Cf As String
Dim Numg As String
Dim D As Integer
Dim F As Integer

Cd = "("
Cf = ")"

For Each Cell In Selection
Text = Cell.Value


For i = 1 To Len(Text)
If Mid(Text, i, 1) = Cd And D < i Then
D = i
End If
If Mid(Text, i, 1) = Cf And F < i Then
F = i
End If
If D <> 0 And F <> 0 Then
Numg = Mid(Text, D + 1, F - D - 1)
GoTo A:
End If

Next i
A:
If Numg <> "" And Numg <> Cell.Offset(-1, 1).Value Then
Cell.Offset(0, 1).Value = Numg
Else: Cell.Offset(0, 1).Value = Cell.Value
End If
D = 0
F = 0
Numg = ""
Next Cell

End Sub



J'ai du faire une erreur (ou plusieurs!!) mais je m'y connais peu, et ca me serait fort utile si ca marchait!!

Merci d'avance a tous ceux qui se donneront la peine de me lire, voire de me répondre !!

2 réponses

darwin42 Messages postés 259 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 21 juillet 2008 67
31 janv. 2007 à 14:59
Salut François,

Je viens d'examiner ton code. Apparemment, le problème vient de la ligne
If Numg <> "" And Numg <> Cell.Offset(-1, 1).Value Then


Dans Cell.Offset, tu compares la valeur de Numg avec la valeur de la ligne précédente (le -1) de la colonne suivante (le 1) (ex : tu compares A5 et B4). Ca me parait bizarre que tu veuilles vraiment faire ça, mais maintenant, je ne sais pas du tout comment est organisé ton tableau Excel, c'est peut-être normal.

Donc, lorsque tu lis la ligne A1, il ne trouve pas la ligne précédente (normal puisqu'il n'y a pas de ligne B0) et du coup, il plante.

Je suis parti du principe que "blalbalbabla(1234)blbabab(321)" étaient dans 2 cellules différentes, soit A1=blalbalbabla(1234) et B2=blbabab(321).
Si c'est bien ça, le plus simple serait de supprimer la condition
And Numg <> Cell.Offset(-1, 1).Value

En faisant comme ça, la macro te recopie les valeurs entre parenthèse s dans la colonne suivante. Tiens moi au courant si ça marche et sinon, explique moi plus précisément ce que tu veux faire.
0
francois13100 Messages postés 4 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 3 février 2007
1 févr. 2007 à 14:59
Merci a toi de t'etre penché sur mon problème!

J'y comprends pas grand chose en Vba et on m'a expliqué cette Macro notée sur une feuille volante a la pause café...

En fait je joue a un jeu sur internet, qui edite une sorte de "newsletter" en mode pdf... Dans excel j'ai une DB avec presque tous mes "adversaires"

Pour exporter le texte du Pdf vers Excel je fais un simple copié-coller, donc tout est dans la case A. Je pourrais manuellement reprendre les numeros qui m'interessent, mais la macro simplifierait grandement le travail...!!
Dans la forme: ababababbababb(1234)ababababaab(321) c'est Nom(N°)Equipe(N°d'equipe)
Grace a la DB et une RechercheV, je pourrais tout visualiser, pour peu que le (N°) soit identifié...

J'espere ne pas etre trop confus!!

D'avance, merci beaucoup en tout cas!!!
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 854
2 févr. 2007 à 02:20
Bonsoir,

une autre solution, sans macro :
1) tu remplaces les ")" par des "(" via le menu Edition/Remplacer....
2) tu convertis ta zone de données récupérées de ton PDF en mode délimité avec séparateur "("
3) tu obtiens directement 4 colonnes avec tes données

naturellement, tu peux enregistrer ces manipulations dans une macro

A+
0
francois13100 Messages postés 4 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 3 février 2007
2 févr. 2007 à 14:12
Cher JvDo, merci de t'etre penché sur mon probleme!!

Ton idée me parait excellente, mais le point N°2 me pose probleme:
je ne sais pas faire cette conversion

J'ai compris l'idée, mais je ne sais pas dans quel menu aller chercher ce "separateur"

Merci d'avance en tout cas !!!
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 854 > francois13100 Messages postés 4 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 3 février 2007
2 févr. 2007 à 15:35
Bonjour,

après avoir sélectionné ta zone (unicolonne bien entendu) des tes données, tu vas dans le menu données/convertir, tu choisis "délimité" puis tu coches "autre" et tu tapes "(" dans la case qui te permet de personnaliser le séparateur.

A+
0
francois13100 Messages postés 4 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 3 février 2007 > JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020
3 févr. 2007 à 13:32
Merci beaucoup, ca marche!!!!!

Excellente idée, je ne connaissais pas cette fonction, c'est parfait!!!

Un grand merci a toi, ca va bien m'aider!!

a+
0