VBA copier valeur cellules si. sur plusieurs feuilles

Bonjour,

Je suis novice en VBA. J'ai déjà réalisé des choses simple mais là je sèche...

J'ai un EXCEL avec deux feuilles - voir photos ("administrative" et "financière") dans lesquelles j'ai des tableaux avec des références. je voudrais :

administratif financiere

si dans la feuille "administrative", la cellule C26 est remplie alors dans la feuille "financière" la cellule E2 est égale à la cellule C28 de la feuille "administrative" et la cellule F2 (feuille "financière") est égale à la cellule C29 (feuille "administrative").

De plus il faudrait que cette macro ce répète pour tous les petits tableaux de la feuille "administrative", de façon à ce le tableau de la feuille "financière" se remplisse automatiquement tant que la première ligne de chaque petit tableau de référence (feuille "administrative") est remplie ; exemple :

si dans la feuille "administrative", la cellule C26 est remplie alors dans la feuille "financière" la cellule E2 est égale à la cellule C28 de la feuille "administrative" et la cellule F2 (feuille "financière") est égale à la cellule C29 (feuille "administrative").

et si dans la feuille "administrative", la cellule C36 est remplie alors dans la feuille "financière" la cellule E3 est égale à la cellule C38 de la feuille "administrative" et la cellule F3 (feuille "financière") est égale à la cellule C39 (feuille "administrative").

ainsi de suite.

Je me dis que vu que c'est un enchainement de 10 lignes d'écart (feuille "administrative") à chaque fois, il doit y avoir une méthode pour ne pas rédiger à chaque fois la même chose.

Merci par avance.

Bonjour,

Essayez ceci:

Option Compare Text

Sub Recup_Donnees()
    Dim f1 As Worksheet, f2 As Worksheet
    Dim i As Long, DerLig As Long, Lig_Dest As Long
    Application.ScreenUpdating = False
    Set f1 = Sheets("administrative")
    Set f2 = Sheets("financière")
    Lig_Dest = 2
    DerLig = f1.Range("B" & Rows.Count).End(xlUp).Row
    For i = 26 To DerLig Step 10
        If f1.Cells(i, "C") <> "" Then
            f2.Cells(Lig_Dest, "E") = f1.Cells(i + 2, "C")
            f2.Cells(Lig_Dest, "F") = f1.Cells(i + 3, "C")
            Lig_Dest = Lig_Dest + 1
        End If
    Next i
    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Cdlt

Génial ça marche super bien.

Merci beaucoup je n'aurais jamais trouver en si peu de temps.

Rechercher des sujets similaires à "vba copier valeur feuilles"