Au secours

Nulette en Excel

XLDnaute Nouveau
:mad: Hello contrarié... Quelqu'un peut-il m'aider à résoudre le probléme suivant:
- Je dispose d'une base compléte de noms et prénoms dans un onglet (colonne A et B), lesquels ont un code alphanumérique (COLONNE c).
D'un autre côté j'ai une quantité de feuilles (onglets) Excel qui ont les noms et prénoms, et a qui je dois attribuer le code ! Pouvez vous m'aider à automatiser la chose.
Par ailleurs comment appliquer la fonction supprespace à tous le dossier d'un coup d'un seul ?
1000 mercis d'avance à ceux qui liront et 1001 bises à ceux qui m'aideront...
Nulette....
PS : ne me demandez pas de joindre le fichier, il dépasse les 50 ko et impossible de le réduire !!! GRRRRR !!!!:confused:
 

Eric 45

XLDnaute Occasionnel
Re : Au secours

Re à tous
Re Nulette

Juste rapidement. J'ai testé, mais un peu rapidement.

Lancer d'abord le bouton "suppression" puis "copie des noms"

On supprime les espaces au début et à la fin des noms, prénoms et nationalités, et il y en a qu'1 seul devant et après. On ne peut pas les supprimer à l'intérieur car il y en a certains qui se nomment "DE VLAEMINCK" ou "VAN VLIERBERGHE".

Eric
 

Pièces jointes

  • courses rectifiées & codes athletes TEST_05c feuille.zip
    44.7 KB · Affichages: 16
C

Compte Supprimé 979

Guest
Re : Au secours

Bonjour tout le monde,

Tu trouveras ci-joint le lien (sur mon site) vers ton fichier modifié :
Ce lien n'existe plus

Zut, je n'avais pas vu que pour télécharger le fichier il fallait s'inscrire sur mon site :D , désolé (pas pensé)

Voilà le lien sur cjoint : http://cjoint.com/?fiujQZ7nVB

La macro CopieNom permet de supprimer les espaces avant et après, ainsi
que la copie des noms sans doublon dans la feuille Athlètes

A+ ;)

Edit : Oups désolé Eric45 y'a eu collision ...
 
Dernière modification par un modérateur:

Eric 45

XLDnaute Occasionnel
Re : Au secours

Bonsoir à tous

Pas de problème Bruno, en plus j'aime bien découvrir comment les autres forumeurs conçoivent leur programme, c'est enrichissant pour moi.

Nulette tu trouveras un nouveau petit fichier ci joint. J'ai repris les macros.

Le 1er bouton supprime les espaces
Le deuxieme copie
Le troisième trie et supprime les doublons sur le nom/prénom

Bien entendu on peut tout faire à la suite, sans intervention, en mettant dans une procédure le nom des 3 macros à la suite. J'ai préféré surveiller les 3 étapes, surtout avec les 90 onglets, peut être que cela va engorger.....

Dis nous

Eric
 

Pièces jointes

  • courses rectifiées & codes athletes TEST_06 feuille.zip
    46.1 KB · Affichages: 26

Nulette en Excel

XLDnaute Nouveau
Re : Au secours

Bonjour à Tous en Bonjour Bruno,
Merci bcp de ton aide et temps. J'ai récupéré ton fichier sur CJOINT et cela semble parfaitement marcher. Peux-tu m'expliquer comment importer tes (ou ta) macro sur mon fichier générique... et dois-je changer quelque chose dans la macro... Désolé, mais je ne ma suis pas donné mon "pseudo" par hasard.
Mille mercis et bises. Nulette....
PS : Avec Eric cela bug. Je lui fais un post...
 

Eric 45

XLDnaute Occasionnel
Re : Au secours

Bonjour à tous
Bonjour Nulette

Je viens de vérifier : 1 bug à mon compte (dsl), 1 bug dans les tableaux

Bug à mon compte : je n'avais pas vu que sur une feuille, il y avait un "total" après une cellulevide, donc il faut modifier cette ligne de code :

nombrecellule = Range("a65536").End(xlup).Row
en
nombrecellule = Range("a1").End(xlDown).Row

Bug dans les tableaux : dès qu'il manque un renseignement dans une cellule : nom, prénom ou nation, la macro plante.

Je te redonne la macro entière modifiée :

Code:
Sub caractere() 'supprime le caractère "espace" devant et après les noms, prénoms et nationalités
                ' balaie les 3 colonnes D, E et F de toutes les feuilles
Dim a, i As Integer
Dim caractere As String
Dim chaine As String
Dim nombrecelule As Integer

caractere = " "

For Each feuille In Worksheets
    If feuille.Name <> "Athlètes" Then
    feuille.Select
Range("a2").Select
[B][COLOR=Red] nombrecellule = Range("a1").End(xlDown).Row[/COLOR][/B]
nomdefeuille = feuille.Name
    For a = 3 To 5
      For i = 0 To nombrecellule - 2
        [B][COLOR=Red]If ActiveCell.Offset(i, a) <> "" Then[/COLOR][/B]
        chaine = ActiveCell.Offset(i, a)
        If Mid(chaine, 1, 1) = caractere Then ActiveCell.Offset(i, a) = Mid(chaine, 2, Len(chaine))
        chaine = ActiveCell.Offset(i, a)
        If Mid(chaine, Len(chaine), 1) = caractere Then ActiveCell.Offset(i, a) = Mid(chaine, 1, Len(chaine) - 1)
        [B][COLOR=Red]End If[/COLOR][/B]
      Next i
    Next a

End If
Next feuille
End Sub

Attention, dans le fichier que j'avais joint, j'avais remarqué que sur une ligne, dans 2 cellules, il y avait "#VALEUR#" et que j'ai modifié : dans Milan San Remo ligne 202

Eric
 

pierrejean

XLDnaute Barbatruc
Re : Au secours

bonjour Nullette

Salut a tous

j'ais testé la macro suivante sur ton fichier

Code:
Sub test()
Dim colP As Integer
Dim colN As Integer
Dim colNat As Integer
Dim athletes As Collection
Set athletes = New Collection
For n = 1 To Sheets.Count
If Sheets(n).Name <> "Athlètes" Then
 For x = 1 To Sheets(n).Range("IV1").End(xlToLeft).Column
  If Sheets(n).Cells(1, x) = "Prénom" Then colP = x
  If Sheets(n).Cells(1, x) = "Nom" Then colN = x
  If Sheets(n).Cells(1, x) = "Code nationalité" Then colNat = x
 Next x
For m = 2 To Sheets(n).Range("A65536").End(xlUp).Row
  On Error Resume Next
    athletes.Add Trim(Sheets(n).Cells(m, colP)) & "_" & Trim(Sheets(n).Cells(m, colN)) & "_" & Trim(Sheets(n).Cells(m, colNat)), CStr(Trim(Sheets(n).Cells(m, colP)) & "_" & Trim(Sheets(n).Cells(m, colN)) & "_" & Trim(Sheets(n).Cells(m, colNat)))
  On Error GoTo 0
Next m
End If
Next n
For n = 1 To athletes.Count
 tableau = Split(athletes(n), "_")
 Sheets("Athlètes").Range("A" & n + 1) = tableau(0)
 Sheets("Athlètes").Range("B" & n + 1) = tableau(1)
 Sheets("Athlètes").Range("C" & n + 1) = tableau(2)
Next n
End Sub

elle donne en feuille athletes la liste des concurrents selon la saisie

tu testeras et classeras ensuite la dite liste par ordre alphabetique de noms ce qui te permettras de voir les erreurs de saisie (assez nombreuses d'apres ce que j'ais pu voir)

en cas de probleme , je suis a l'ecoute
 

Nulette en Excel

XLDnaute Nouveau
Re : Au secours

Hello Tous, je vais prendre un abo permanent au site !!!! Merci Pierre Jean de ton intêrêt et contribution. Je vais abuser :
Peux tu me dire si :
- Ta macro supprimme les espaces inutiles avant importation (je ne pense pas!).
- Comment intégrer celle-ci dans ma feuille originale de maniére efficace. pour tout dire, pour l'instant je recopie la macro dans un subuser form vierge et demande l'éxé. Cela ne me parait pas trés protocolaire !!!
La bise et à bientôt.
 
C

Compte Supprimé 979

Guest
Re : Au secours

Salut Nulette,

Je viens de voir ton post, et suis en train de tester ma macro sur ton fichier original !

Comme il y a pas mal de noms, c'est un peu long :rolleyes:
Je t'adresse le fichier dès que possible ;)

PS : La macro de PierreJean est pas mal du tout, mais ne supprime pas les espaces dans les noms.

A+
 

Nulette en Excel

XLDnaute Nouveau
Re : Au secours

Hello Pierre Jean,
Ca marche du tonnerre. Bravo et merci bcp bcp bcp....Seul souci (évoqué dans mon post précédant) c'est que j'aimerais bien virer les espaces inutiles sur les feuilles courses, car je vais devoir me servir de celles-ci. As tu une solution ?
La super Nulette....
 

pierrejean

XLDnaute Barbatruc
Re : Au secours

re

la macro supprime les espaces devant et derriere les noms , prenoms et code nationalité (et pas au milieu)

la meilleure façon de l'utiliser , à mon avis, est de la copier dans un module et de l'appeler par un ' call test ' lequel peut etre mis a peu pres n'importe ou

testes la deja en la lançant par

Outils > Macro > Macros

selectionne test et executer
 

Discussions similaires

Réponses
7
Affichages
620

Statistiques des forums

Discussions
312 890
Messages
2 093 349
Membres
105 696
dernier inscrit
FrancisR