Copie d'un range de cellules recherché avec fct INDEX+EQUIV

Bonjour,

Je souhaite automatiser via VBA

Je souhaite sélectionner un range de cellules déterminé avec la fonction index equiv et copié les données sur un autre range de cellules déterminés par la fonction INDEX EQUIV.

_1er Range de cellules à selectionner + copier :

1ere cellule du range : INDEX(B10:AI81;EQUIV("CAPITAUX PROPRES SOCIAUX";B10:B81;);EQUIV("Capitaux propres N";B10:AI10;))

2de cellule du range : =INDEX(B10:AI81;EQUIV("CAPITAUX PROPRES MINORITAIRES";B10:B81;);EQUIV("Capitaux propres N";B10:AI10;))

_ 2d Range ie sur lequel les cellules doivent être collés EN VALEUR :

1ere cellule du range : INDEX(B10:AI81;EQUIV("CAPITAUX PROPRES SOCIAUX";B10:B81;);EQUIV("Capitaux ";B10:AI10;))

2de cellule du range : INDEX(B10:AI81;EQUIV("CAPITAUX PROPRES MINORITAIRES";B10:B81;);EQUIV("Capitaux ";B10:AI10;))

Merci d'avance pour votre aide précieuse qui me fera gagner un gain de temps fou,

Cdt

Bonjour,

je n'ai pas compris pourquoi vous utilisé la fonction INDEX pour trouver une adresse,

voici ce que j'ai compris, j'ai mit beaucoup de variable pour suivre le code en exécution pas à pas,

à tester,

Sub test()
Dim sh1, sh2, x1 As Long, x2 As Long, x3 As Integer, addr As String
Set sh1 = Sheets("CHICAGO")
Set sh2 = Sheets("Feuil1")

x1 = Application.Match("CAPITAUX PROPRES SOCIAUX", sh1.Range("B:B"), 0)
x2 = Application.Match("CAPITAUX PROPRES MINORITAIRES", sh1.Range("B:B"), 0)
x3 = Application.Match("Capitaux propres N", sh1.Range("10:10"), 0)

addr = Range(Cells(x1, 2).Address, Cells(x2, x3).Address).Address

sh2.Range(addr).Value = sh1.Range(addr).Value
End Sub

Bonjour Sabv,

Merci pour ton aide.

Pourquoi choisir un index dans la présente feuille?

Voici mon problème. J'ai 150 feuilles comme celle joint au fichier attaché au précédent post.

Je dois copié coller valeur le range (AI13;AI81) sur le range (C13;C81).

Le problème est que les feuilles ne sont pas homogènes. Pour une autre feuille, cela peut être copie du range (AI13:AI95) sur le range (C13:C95) dans le cas où, il y a plus de lignes...

J'ai testé mais cela ne fonctionne toujours pas. Peux-tu m'aider stp?

Merci d'avance,

Je dois copié coller valeur le range (AI13;AI81) sur le range (C13;C81).

Le problème est que les feuilles ne sont pas homogènes. Pour une autre feuille, cela peut être copie du range (AI13:AI95) sur le range (C13:C95) dans le cas où, il y a plus de lignes...

est ce que c'est seulement la dernière ligne qui est variable AI13:AIx coller sur C13:Cx de la même feuille et à faire sur plusieurs feuilles ?

Bonjour,

Tout d'abord, je vous remercie grandement pour votre attention votre travail et votre aide. C'est très gentil de votre part.

Exactement, j'ai ajusté le fichier. Pour l'onglet:

_ Chicago : Il faut copier coller valeur les cellules AI13:AI81 sur le range C13:C81

_ UHU : Il faut copier coller valeur les cellules AI13:AI40 sur le range C13:C40

_ Colgate : Il faut copier coller valeur les cellules de AI13:AI34 sur le range C13:C34

Dans mon fichier réel, j'ai 150 feuilles comme ces trois dernières feuilles.

Cdt

Bonjour,

une autre proposition,

attention: vu que les cellules de la colonne AI contiennent une formule somme incuant la colonne "C"

=SOMME(C18:AH18)

les données de la colonne "AI" seront doublées

Sub test()
Dim f, x1 As Long, addrSource As String, addrDestination As String
For Each f In Worksheets
  With f
    x1 = Application.Match("CAPITAUX PROPRES MINORITAIRES", f.Range("B:B"), 0)
    addrSource = Cells(13, "AI").Address & ":" & Cells(x1, "AI").Address
    addrDestination = Cells(13, "C").Address & ":" & Cells(x1, "C").Address
    .Range(addrDestination).Value = .Range(addrSource).Value
  End With
Next
End Sub

Bonjour,

Merci beaucoup. C'est exactement ce que je recherche.

C'est pas grave si les cellules de la colonne AI se dédoublent.

Merci pour ce retour, au plaisir!

pour clôturer le fil, cliquer sur le bouton V vert du post à coté du bouton EDITER, merci!

Rechercher des sujets similaires à "copie range recherche fct index equiv"