Macro séparation NOM PRENOM dans plusieurs Feuilles et regrouper dans une

Bonjour,

J'ai une question est-ce-que quelque'un est gentille ici pour me faire un Macro qui me fait les opérations suivantes automatiquement:

1. Séparation des Noms et Prénoms dans les feuilles 2010 ; 2011 ; 2012 et regrouper dans la Feuille Tabelle1 mais le Nom séparer du Prénom Colonne J et K

2. l'année dans feuille Tabelle1 Colonne N et l'année du nom de la feuille

3. Il faut aussi copier les autre cellules des feuilles dans la feuille Tabelle1 A dans la Colonne C Tabelle1 ; B séparé aux Colonnes J ; K Tabelle1 ; C dans la Colonne L Tabelle1 ; H dans la Colonne A Tabelle1 ; I dans la Colonne W Tabelle1 ; et l'année dans la Colonne N Tabelle1

4. Les colonnes D ; E ; F ; G pas copier dans Tabelle1 !

Il doit prendre tous dans les feuilles, toujours jusqu'à la dernière ligne d'inscription . C'est possible qu'il me demande toujours à la fin d'une transmission quelle année je veus transféré au suivant dans Tabelle1 ou finir la transmission?

Je vous remercie viviement pour votre aide

Je suis aussi prête de payer quelque chose

18tabelle.xlsx (13.20 Ko)

Hallo Jerry !

Ich kann es machen wenn du willst. Um die beste Lösung zu wählen, könntest du erklären wo deinen Daten stammen ? Wird es später mehr compliziert werden ?

Die Daten die in dieser Tabelle stehen sind nur erfundene Daten die es in realität nicht gibt. Nein es wird nicht komplizierter wäre es nur vielleicht möglich dass ich die Blätter zuerst einzel auswählen kann oder alle übertragen kann. Denn später werden es noch mehrere Blätter werden!

Vielen Dank wenn Sie mir das machen könnten

Voilà comment je traiterais la question.

Je serais reconnaissant aux personnes meilleures que moi de me dire comment elles auraient fait, cela m'intéresse beaucoup et me fera progresser par la même occasion

8tabelle.xlsm (26.19 Ko)

Le bouton bleu en A1 de la feuille Tabelle1 lance la macro.

Sub import()
Dim onglet As String, nomcomplet As String
Dim DerligneO, ligne, positionespace, i As Integer

1:
onglet = InputBox("Quelle année importer ?")

If onglet = "" Then Exit Sub
    If FeuilleExiste(onglet) = False Then MsgBox ("La feuille n'existe pas"): Exit Sub

ligne = Sheets("tabelle1").Range("A1048576").End(xlUp).Row
DerligneO = Sheets(onglet).Range("A1048576").End(xlUp).Row

For i = 2 To DerligneO
    nomcomplet = Sheets(onglet).Cells(i, 2).Value
    positionespace = InStr(nomcomplet, " ")

With Sheets("Tabelle1")
    .Range("A" & ligne + 1).Value = Sheets(onglet).Cells(i, "H").Value
    .Range("C" & ligne + 1).Value = Sheets(onglet).Cells(i, "A").Value
    .Cells(ligne + 1, "J").Value = Left(nomcomplet, positionespace - 1)
    .Cells(ligne + 1, "K").Value = Mid(nomcomplet, positionespace + 1)
    .Range("L" & ligne + 1).Value = Sheets(onglet).Cells(i, "C").Value
    .Range("N" & ligne + 1) = onglet
    .Range("W" & ligne + 1).Value = Sheets(onglet).Cells(i, "I").Value
End With

ligne = ligne + 1
Next

If MsgBox("Année " & onglet & " bien importée. Importer une autre année ?", vbYesNo, "Nouvel import ?") = vbYes Then GoTo 1
End Sub

Public Function FeuilleExiste(FeuilleAVerifier As String) As Boolean
'fonction qui vérifie si la "FeuilleAVerifier" existe dans le Classeur actif
'par Excel-Malin.com ( https://excel-malin.com )

On Error GoTo SiErreur
Dim Feuille As Worksheet

    FeuilleExiste = False
    For Each Feuille In Worksheets
        If UCase(Feuille.Name) = UCase(FeuilleAVerifier) Then
            FeuilleExiste = True
            Exit Function
        End If
    Next Feuille
Exit Function

SiErreur:
    FeuilleExiste = CVErr(xlErrNA)
End Function

Petit up si le cœur vous en dit et que vous vous ennuyez ce matin 😉

S'il y a plusieurs dizaines de milliers de lignes à importer, je me dis que ma méthode est moisie.

Mais je ne sais pas s'il vaut mieux passer par des tableaux en mémoire sachant que les résultats doivent être restitués dans des colonnes différentes et non adjacentes.

Rechercher des sujets similaires à "macro separation nom prenom feuilles regrouper"