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