TextBox et récupération d'info

Bonjour,

Est ce que qqn pourrait me donner un petit coup de main svp ?

Je dois récupérer l'information depuis un textbox (TextBox2 ==> fichier source / TextBox3 ==> fichier destination ) page suivi fichier suppression pour modifier l'emplacement de mes fichiers dans le code ( l'utilisateur le saisie manuellement sur la page suivi).

12copie-1.xlsm (232.70 Ko)
    ' Ouvrir le fichier source
    Set fichierSource = Workbooks.Open("C:\XXX\suppression-DBC.xlsm")

    ' Ouvrir le fichier de destination
    Set fichierDestination = Workbooks.Open("C:\XXX\Copie 1.xlsm"
Sub CopierCollerEtEnregistrer()
    Dim fichierSource As Workbook
    Dim fichierDestination As Workbook
    Dim feuilleSource As Worksheet
    Dim feuilleDestination As Worksheet
    Dim cheminDestination As String
    Dim valeurRecherche As String
    Dim plageRecherche As Range
    Dim cel As Range
    Dim derniereligne As Long

    ' Ouvrir le fichier source
    Set fichierSource = Workbooks.Open("C:\XXXX\suppression-DBC.xlsm")

    ' Référencer la feuille source
    Set feuilleSource = fichierSource.Worksheets("Suivi")

    ' Obtenir le nombre de lignes dans le tableau 4
    derniereligne = feuilleSource.Range("A" & feuilleSource.Rows.Count).End(xlUp).Row

    ' Parcourir chaque ligne du tableau 4 sauf la dernière ligne
    For i = 2 To derniereligne ' Commencer à partir de la 2ème ligne pour exclure les en-têtes
        ' Rechercher la valeur dans la feuille "Suivi"
        valeurRecherche = feuilleSource.Range("A" & i).Value

        ' Vérifier si valeurRecherche est vide
        If valeurRecherche <> "" Then

            ' Ouvrir le fichier de destination
            Set fichierDestination = Workbooks.Open("C:\XXXXX\Copie 1.xlsm")

            ' Référencer la feuille destination
            Set feuilleDestination = fichierDestination.Worksheets("Suppression FID")

            ' Copier les valeurs de la source
            feuilleDestination.Range("C5").Value = feuilleSource.Range("A" & i).Value
            feuilleDestination.Range("B5").Value = feuilleSource.Range("B" & i).Value
            feuilleDestination.Range("M5").Value = feuilleSource.Range("C" & i).Value
            feuilleDestination.Range("E5").Value = feuilleSource.Range("D" & i).Value
            feuilleDestination.Range("G5").Value = feuilleSource.Range("F" & i).Value
            feuilleDestination.Range("L5").Value = feuilleSource.Range("G" & i).Value
            feuilleDestination.Range("K5").Value = feuilleSource.Range("H" & i).Value

            ' Rechercher la valeur dans la feuille "Récupération info"
            valeurRecherche = feuilleSource.Range("A" & i).Value
            Set plageRecherche = fichierSource.Worksheets("Récupération info").Range("D2:D" & fichierSource.Worksheets("Récupération info").Cells(Rows.Count, "D").End(xlUp).Row)

            ' Effacer les valeurs existantes dans les cellules N5 et O5
            feuilleDestination.Range("N5").Value = ""
            feuilleDestination.Range("O5").Value = ""

            ' Parcourir la colonne D et copier les valeurs correspondantes dans la cellule N5
            For Each cel In plageRecherche
                If cel.Value = valeurRecherche Then
                    If feuilleDestination.Range("N5").Value = "" Then
                        feuilleDestination.Range("N5").Value = cel.Offset(0, -3).Value
                    Else
                        feuilleDestination.Range("N5").Value = feuilleDestination.Range("N5").Value & "/" & cel.Offset(0, -3).Value
                    End If
                End If
            Next cel

            ' Parcourir la colonne D et copier les valeurs correspondantes dans la cellule O5
            For Each cel In plageRecherche
                If cel.Value = valeurRecherche Then
                    If feuilleDestination.Range("O5").Value = "" Then
                        feuilleDestination.Range("O5").Value = cel.Offset(0, -1).Value
                    Else
                        feuilleDestination.Range("O5").Value = feuilleDestination.Range("O5").Value & "+" & cel.Offset(0, -1).Value
                    End If
                End If
            Next cel

            ' Enregistrer le fichier de destination avec le nom de valeurRecherche
            Dim nomFichier As String
            Dim cheminDossier As String
            Dim cheminFichier As String
            Dim doublons As Boolean

            ' Récupérer le chemin du dossier à partir du TextBox2
            cheminDossier = ThisWorkbook.Sheets("Suivi").TextBox2.Value

            ' Vérifier si le nom de fichier existe déjà
            nomFichier = valeurRecherche & ".xlsm"
            cheminFichier = cheminDossier & "\" & nomFichier

            If Dir(cheminFichier) <> "" Then
                ' Si le fichier existe déjà, ajouter "Copie" au nom de fichier
                doublons = True
                Dim numCopie As Integer
                numCopie = 1
                Do Until Dir(cheminFichier) = ""
                    nomFichier = "Copie" & numCopie & "_" & valeurRecherche & ".xlsm"
                    cheminFichier = cheminDossier & "\" & nomFichier
                    numCopie = numCopie + 1
                Loop
            End If

            fichierDestination.SaveAs cheminFichier

            ' Fermer le fichier de destination sans enregistrer les modifications
            fichierDestination.Close SaveChanges:=False

            ' Afficher un message si des doublons ont été détectés
            If doublons Then
                MsgBox "Des doublons ont été détectés lors de l'enregistrement des fichiers."
            End If
        End If
    Next i

    MsgBox "Le traitement est terminé."

End Sub

J'ai mis à jour mon code

N'ayant pas eu de réponse, je me permets de relancer

Bonjour

Je dois récupérer l'information depuis un textbox (TextBox2 ==> fichier source / TextBox3 ==> fichier destination ) page suivi fichier suppression pour modifier l'emplacement de mes fichiers dans le code ( l'utilisateur le saisie manuellement sur la page suivi).

La source n'est pas dans la textbox2 mais bien dans la Textbox3. C'est l'inverse que vous mentionnez dans votre post
Du coup je ne comprends pas votre problème.

Par contre pourquoi utiliser des Textbox sur votre feuille pour faire cela. J'aurais supprimé les objets Texbox et mis ces infos dans des cellules. Plus simple à faire à mon avis

Crdlt

Rechercher des sujets similaires à "textbox recuperation info"