recherche position et collage

Olyxier

XLDnaute Occasionnel
Bonjour le Forum

je souhaiterai avoir une macro qui recherche la position d'un numéro dans des colonne et qui colle le chiffre qui ce trouve à ça droite sous une liste.
En sachant qu'il y à des doublons celui qui doit être collé est le premier numéro trouvé je vous joint un fichier pour mieux me faire comprendre.

je vous remercie pour le temps que vous aller me consacrer sur ce problème qui pour moi est impossible.
 

Pièces jointes

  • Classeur2.xlsx
    12.4 KB · Affichages: 31
  • Classeur2.xlsx
    12.4 KB · Affichages: 39
  • Classeur2.xlsx
    12.4 KB · Affichages: 37

JBARBE

XLDnaute Barbatruc
Re : recherche position et collage

Bonjour à tous,

En cliquant sur le bouton GO !

bonne journée !
 

Pièces jointes

  • Copie_Nombres.xls
    92.5 KB · Affichages: 27
  • Copie_Nombres.xls
    92.5 KB · Affichages: 36
  • Copie_Nombres.xls
    92.5 KB · Affichages: 29

Olyxier

XLDnaute Occasionnel
Re : recherche position et collage

Merci JBARBE cette formule marche super bien. Mais comme je suis pas très bon en code j'ai besoin de comprendre le fonctionnement de la macro pour l'emplacement des résultats ok. Mais si je modifie l'emplacement dans la feuille des colonne de recherche, ou si il y a d'autre fonction dans la feuille qu'elles sont les ligne à modifier dans le code car si je comprend bien cela For i = 7 To 65536 dit que c'est sur toutes les ligne de 7 à 65536 non? et je vois pas trop ou ce trouve les colonne C,D,F,G
merci pour votre aide
 
Dernière édition:

JBARBE

XLDnaute Barbatruc
Re : recherche position et collage

Un descriptif est mis également dans la macro !

Code:
Option Explicit

Sub copie()
Dim i As Long
Dim k As Long
Dim p As Long
Dim x As Integer
Dim j As Integer
Dim h As Integer
Range("M17:AK17").ClearContents ' suppression du contenu de la colonne M à AK ligne 17
For i = 7 To 65536 ' boucle de la ligne 7 à 65536
 If Cells(i, 3) = "" Then Exit For ' si la cellule ligne i de la colonne C est vide alors sortir
 For j = 13 To 37 ' boucle de la colonne M à la colonne AK
 If Cells(i, 3) = Cells(16, j) And Cells(17, j) = "" Then ' si la cellule ligne i colonne C est égale à la cellule ligne 16 colonne M à AK
 ' et que la cellule en dessous ligne 17 celle-ci est vide alors
  Cells(17, j) = Cells(i, 4) ' la cellule ligne 17 colonne M à AK est égale à la cellule ligne i colonne C
  Exit For ' sortie de la boucle
  End If ' fin si
 Next j ' fin boucle j
Next i ' fin boucle i

For k = 7 To 65536 ' idem que pour i
If Cells(k, 6) = "" Then Exit For ' colonne F concernée
For x = 13 To 37 ' idem que pour j
  If Cells(k, 6) = Cells(16, x) And Cells(17, x) = "" Then
  Cells(17, x) = Cells(k, 7)
  Exit For
  End If
Next x
Next k

For p = 7 To 65536 ' idem que pour i
If Cells(p, 9) = "" Then Exit For 'colonne I concernée
For h = 13 To 37 ' idem que pour j
  If Cells(p, 9) = Cells(16, h) And Cells(17, h) = "" Then
  Cells(17, h) = Cells(p, 10)
  Exit For
  End If
 Next h
Next p

End Sub

bonne journée
 

Pièces jointes

  • Copie_Nombres.xls
    92.5 KB · Affichages: 27
  • Copie_Nombres.xls
    92.5 KB · Affichages: 30
  • Copie_Nombres.xls
    92.5 KB · Affichages: 30
Dernière édition:

Discussions similaires

  • Question
Microsoft 365 TEXTBOX
Réponses
7
Affichages
377

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji