Déclaration d'une plage de deux cellules string
Résolu
DrFoZz
Messages postés
8
Statut
Membre
-
DrFoZz Messages postés 8 Statut Membre -
DrFoZz Messages postés 8 Statut Membre -
Bonjour, je suis nouveau sur ce forum...et sur VBA aussi :D
Je bloque sur un bout de mon programme...
Je n'arrive pas à chercher ma plage de donnée (composée de deux cellules type string) sur des tableaux de deux feuilles différentes.
Les lignes "Set PlageDeRecherche" (deux au total) bloquent la macro.
Merci pour votre aide
Voila le bout du programme:
Je bloque sur un bout de mon programme...
Je n'arrive pas à chercher ma plage de donnée (composée de deux cellules type string) sur des tableaux de deux feuilles différentes.
Les lignes "Set PlageDeRecherche" (deux au total) bloquent la macro.
Merci pour votre aide
Voila le bout du programme:
Sub Comparer_Nom_Metal(Num_row As Integer) Dim ligne_find_CFSI As Integer Dim ligne_find_all As Integer Dim Trouve As Range Dim PlageDeRecherche_CFSI As Range Dim PlageDeRecherche_Existant As Range Dim Chercher_Nom_Metal_Analyse As String 'Valeur cherchee Chercher_Nom_Metal_Analyse = Range("A" & Num_row) + Range("C" & Num_row).Value 'Recherche dans valide CFSI Set PlageDeRecherche_CFSI = Worksheets("Valide CFSI").Columns(1) + Worksheets("Valide CFSI").Columns(3) Set Trouve = PlageDeRecherche_CFSI.Cells.Find(what:=Chercher_Nom_Metal_Analyse, LookAt:=xlWhole ligne_find_CFSI = PlageDeRecherche_CFSI.Cells.Find(what:=Chercher_Nom_Metal_Analyse, LookAt:=xlWhole).Row 'Si on ne trouve rien : If Trouve Is Nothing Then 'Recherche dans all (ceux déjà existant) Set PlageDeRechercheExistant = Worksheets("all").Columns(1) + Worksheets("all").Columns(3) Set Trouve = PlageDeRecherche_Existant.Cells.Find(what:=Chercher_Nom_Metal_Analyse, LookAt:=xlWhole) ligne_find_all = PlageDeRecherche_Existant.Cells.Find(what:=Chercher_Nom_Metal_Analyse, LookAt:=xlWhole).Row 'Si on ne trouve rien, copie du nom attribuer "Smelter not listed" et ajouter If Trouve Is Nothing Then Range("B" & Num_row).Offset(0, 1).Select Range("B" & Num_row) = "Smelter Not Listed" Range("E" & Num_row) = "Not Listed" Range("Q" & Num_row) = "Ajouté" Num_row = Num_row + 1 'Si trouvé, chercher si numéro ID Else 'Si trouvé, copier le numéro et renvoyer à "Comparer_CFSI" If Worksheets("all").Range("E" & ligne_find_all).Value <> "Not Listed" Then Worksheets("all").Range("E" & ligne_find_all).Copy Worksheets("Analyse Smelter").Range("E" & Num_row).Paste Worksheets("all").Range("B" & ligne_find_all).Copy Worksheets("Analyse Smelter").Range("B" & Num_row).Paste Call Comparer_CFSI(Num_row) 'Si non, il est déjà dans la base Else Range("Q" & Num_row) = "OK" Num_row = Num_row + 1 End If End If 'Si il y à un numéro CFSI, le copier et renvoyer à "Comparer CFSI" Else Worksheets("Valide CFSI").Range("E" & ligne_find_CFSI).Copy Worksheets("Analyse Smelter").Range("E" & Num_row).Paste Worksheets("Valide CFSI").Range("B" & ligne_find_CFSI).Copy Worksheets("Analyse Smelter").Range("B" & Num_row, "C" & Num_row).Paste Call Comparer_CFSI(Num_row) End If End Sub
A voir également:
- Déclaration d'une plage de deux cellules string
- Déclaration - Guide
- Fusionner deux cellules excel - Guide
- Nombre de jours entre deux dates excel - Guide
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
Je ne connais pas la finalité de ta macro mais avec ce que j'ai compris cela pourrait donner cela :
https://www.cjoint.com/c/DHEkHsl1AUz
C'est ta macro modifiée avec tableau mémoire.
Merci beaucoup :D