Explications sur un code

bonjour

on m'a donné un code a mettre en place, j'aimerais quelques explications sur sont fonctionnement car je n'arrive pas a le modifier pour insérer les données correspondantes a la feuille "Saisie AAA" et "Saisie DDD" et comment on peut mettre en place ce type de bouton de commande.

merci pour votre aide

rajac

la feuille "Saisie AAA" et "Saisie DDD"

"Sub Export()
Dim f1 As Worksheet, f2 As Worksheet
Dim i As Long, j As Long, DerLig_f1 As Long, DerLig_f2 As Long

Application.ScreenUpdating = True
Set f1 = Sheets("Récap individuel")
DerLig_f1 = f1.Range("A" & Rows.Count).End(xlUp).Row
For i = 3 To DerLig_f1
Set f2 = Sheets("Saisie " & f1.Cells(i, "A"))
DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row
For j = 2 To DerLig_f2
Ref = f2.Cells(j, "A")
With f1.Rows(1)
Set X = .Find(Ref, lookat:=xlWhole)
If Not X Is Nothing Then
Range(f1.Cells(i, X.Column), f1.Cells(i, X.Column + 136)).Copy
f2.Range("B" & j).PasteSpecial Paste:=xlPasteValues
End If
End With
Next j
Next i
Set f1 = Nothing
Set f2 = Nothing
End Sub"

Je pense que tu devrai lui demander directement sur le fil que tu as créer.

Qu'est-ce que tu ne comprend pas au code ?

Bonjour,

Le code commenté (en espérant que les commentaires ne soient pas trop obscurs !) :

Sub Export()

Dim f1 As Worksheet, f2 As Worksheet 'Déclaration de 2 variables qui feront référence à des feuilles
Dim i As Long, j As Long, DerLig_f1 As Long, DerLig_f2 As Long 'Variables de type (gros) entier
Dim X As Range 'Variable de type plage

Application.ScreenUpdating = True 'Désactive l'actualisation de l'affichage le temps de la macro
Set f1 = Sheets("Récap individuel") 'Affecte la feuille "Récap individuel" à la variable f1
DerLig_f1 = f1.Range("A" & Rows.Count).End(xlUp).Row 'Affecte le n° de la dernière ligne trouvée en colonne A
For i = 3 To DerLig_f1 'Boucle de la ligne 3 jusqu'à la dernière
    Set f2 = Sheets("Saisie " & f1.Cells(i, "A")) 'Affecte la feuille correspondante à la ligne
    DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row 'Stocke la dernière ligne de ladite feuille
    For j = 2 To DerLig_f2 'Boucle de la ligne 2 jusqu'à la dernière
        With f1.Rows(1) 'Tout ce qui débute par un "." se réfère à la ligne 1 de la feuille Récap individuel
            Set X = .Find(f2.Cells(j, "A"), lookat:=xlWhole) 'Cherche la référence correspondante (colonne A feuille Saisie) en feuille Récap individuel
            If Not X Is Nothing Then 'Si on a trouvé une correspondance
                Range(f1.Cells(i, X.Column), f1.Cells(i, X.Column + 136)).Copy 'Alors on copie la référence et les 136 colonnes suivantes
                f2.Range("B" & j).PasteSpecial Paste:=xlPasteValues 'Collage en valeur dans la feuille saisie
            End If
        End With
    Next j
Next i

End Sub

bonjour

merci pour ces explications, c'est plus clair, je vais essayer de l'insérer dans mon fichier d'origine.

bonne journée

rajac

Bonjour,

comment on peut mettre en place ce type de bouton de commande.

En mode "Développeur" tu choisis"Mode Création" (Equerres) et ensuite Insérer (Boite à outils). Une boite s'ouvre, tu choisis dans les Contrôles ActiveX le "bouton de commande" (1er en haut à gauche). Tu dessines alors ton bouton là où tu désires qu'il soit. Une fois dessiné, clique droit sur ce bouton, choisis "Visualiser le code" et copie le code que l'on t'a donné.

Est-ce bien cela que tu recherchais

Cordialement

Jacky

bonjour

Merci pour ta réponse mais ce principe je vois bien comment cela fonctionne, mais c'est dans le fichier joint qui : A part Affecter une macro en faisant un clic droit + la mise en forme qui est différente que je ne comprend pas.

bonne journée

cordialement

rajac

Rechercher des sujets similaires à "explications code"