Remplacer les cellules vides.
Statisticien
Messages postés
26
Statut
Membre
-
Statisticien Messages postés 26 Statut Membre -
Statisticien Messages postés 26 Statut Membre -
Bonjour tout les monde,
J'espère que vous allez bien. De nouveau parmi vous avec une nouvelle problèmatique.
J'ai une feuille excel avec deux colonnes : Identifiant (numérique) et Nom (caractère).
Dans la colonne Nom j'ai plusieurs vides. Comment remplir ce vide ? Il faut aller chercher dans une autre feuille excel (qui constitue l'historique des mois précédents) l'indetifiant et prendre le nom de cet identifiant et le mettre dans la cellule vide.
Exemple:
Je suis dans la feuille1:
identifiant Nom
87 Nom1
45 Nom2
256
21458
789 Nom3
je voudrais qu'il va chercher dans la feuile2
l'identifiant 256 prendre son nom et le mettre dans la worksheets("feuil1").cells(4,2) je voudrais qu'il va chercher dans la feuile2 l'identifiant 21458 prendre son nom et le mettre dans la worksheets("feuil1").cells(5,2).
J'espère que j'ai été assez clair les amis. Je vous remercie infiniment pour votre aide.
J'espère que vous allez bien. De nouveau parmi vous avec une nouvelle problèmatique.
J'ai une feuille excel avec deux colonnes : Identifiant (numérique) et Nom (caractère).
Dans la colonne Nom j'ai plusieurs vides. Comment remplir ce vide ? Il faut aller chercher dans une autre feuille excel (qui constitue l'historique des mois précédents) l'indetifiant et prendre le nom de cet identifiant et le mettre dans la cellule vide.
Exemple:
Je suis dans la feuille1:
identifiant Nom
87 Nom1
45 Nom2
256
21458
789 Nom3
je voudrais qu'il va chercher dans la feuile2
l'identifiant 256 prendre son nom et le mettre dans la worksheets("feuil1").cells(4,2) je voudrais qu'il va chercher dans la feuile2 l'identifiant 21458 prendre son nom et le mettre dans la worksheets("feuil1").cells(5,2).
J'espère que j'ai été assez clair les amis. Je vous remercie infiniment pour votre aide.
A voir également:
- Remplacer les cellules vides.
- Remplacer disque dur par ssd - Guide
- Comment supprimer les pages vides sur word - Guide
- Remplacer word - Guide
- Excel additionner plusieurs cellules - Guide
- Verrouiller cellules excel - Guide
5 réponses
Bonjour,
- Pas besoin de VBA pour cela... une simple formule de type : RECHERCHEV ou INDEX/EQUIV te donnera le résultat souhaité...
- Si tu veux absolument faire ça en VBA.. il te faudra alors utiliser la méthode FIND.
Exemple: https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
- Pas besoin de VBA pour cela... une simple formule de type : RECHERCHEV ou INDEX/EQUIV te donnera le résultat souhaité...
- Si tu veux absolument faire ça en VBA.. il te faudra alors utiliser la méthode FIND.
Exemple: https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
Sub Cherche()
'déclaration des variables :
Dim Trouve As Range
Dim PlageDeRecherche As Range
Dim Valeur_Cherchee As String
Dim RowTrouvee As Long
Valeur_Cherchee =worksheets("feuil1").cells(4,1).value
Set PlageDeRecherche = Sheets(2).Columns(1)
'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
'ici, traitement pour le cas où la valeur n'est pas trouvée
debug.print ("Aucun résultat trouvé...")
Else
'ici, traitement pour le cas où la valeur est trouvée
RowTrouvee = Trouve.row
End If
' On copie le nom dans la cellule de la feuille 1
worksheets("feuil1").cells(4,2).value = Sheets(2).cells(RowTrouvee,2).value
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
End Sub
Bonjour Statisticien, Jordane45,
Une alternative à la méthode find, utilisant la méthode Evaluate et la fonction RECHERCHEV suggérée par Jordane45, avec la boucle sur toutes les lignes de la feuil1 :
Une alternative à la méthode find, utilisant la méthode Evaluate et la fonction RECHERCHEV suggérée par Jordane45, avec la boucle sur toutes les lignes de la feuil1 :
Sub Statisticien()
'A ADAPTER :
'Les noms des feuilles
Dim DL_Feuil2 As Long, DL_Feuil1 As Long, L As Long
With Sheets("Feuil2") 'A ADAPTER
DL_Feuil2 = .Range("A" & Rows.Count).End(xlUp).Row
End With
With Sheets("Feuil1") 'A ADAPTER
DL_Feuil1 = .Range("A" & Rows.Count).End(xlUp).Row
For L = 2 To DL_Feuil1
If .Range("B" & L) = "" Then .Range("B" & L) = Evaluate("VLOOKUP(A" & L & ",Feuil2!A2:B" & DL_Feuil2 & ",2,FALSE)")
Next L
End With
End Sub
Merci beaucoup, c'est bon le problème est résolu. Je vous remercie infiniment pour votre aide ainsi que pour votre disponibilité.
Bonjour Jordane, Bonjour tout le monde,
Jordane je te remercie pour ton aide. En fait j'ai appliqué le code, mais j'ai eu un petit problème : les noms recherchés ne sont pas exactement les même, Exemple si dans la première feuille j'ai comme nom : Jordane, dans la dexième j'aurais à chercher Jordane1589. Donc j'ai utilisé LookAt:=xLpart. Ce qui s'est passé c'est que j'ai voulu intervertir les feuilles mais ça ne marche pas. Je m'explique :
J'applique ce code :
Ce code permet de checher dans la feuille cg_TCD, les noms figurant dans la feuille 155. Le problème c'est dans la feuille 155 on a les nom+un indice. Je voudrais intervertir : je cherche dans la feuille 155 , les noms figurant dans la feuille cg_TCD. J'applique ce code :
mais j'ai l'erreur suivante : erreur 1004 : erreur définie par l'application ou par l'objet en sourlignant Worksheets("155").Cells(RowTrouvee, 15).Value = Worksheets("cg_TCD").Cells(i, 2).Value
Une idée peut-être ? Et merci beaucoup.
Jordane je te remercie pour ton aide. En fait j'ai appliqué le code, mais j'ai eu un petit problème : les noms recherchés ne sont pas exactement les même, Exemple si dans la première feuille j'ai comme nom : Jordane, dans la dexième j'aurais à chercher Jordane1589. Donc j'ai utilisé LookAt:=xLpart. Ce qui s'est passé c'est que j'ai voulu intervertir les feuilles mais ça ne marche pas. Je m'explique :
J'applique ce code :
Sub rempl_contregaranties()
'déclaration des variables :
Dim Trouve As Range
Dim PlageDeRecherche As Range
Dim Valeur_Cherchee As String
Dim RowTrouvee As Long
For i = 1 To 2000
Valeur_Cherchee = Worksheets("155").Cells(i, 5).Value
Set PlageDeRecherche = Sheets("cg_TCD").Columns(1)
'méthode find, ici on cherche la valeur exacte (LookAt:=xlPart)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookIn:=xlValues)
'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
'ici, traitement pour le cas où la valeur n'est pas trouvée
Debug.Print ("Aucun résultat trouvé...")
Else
'ici, traitement pour le cas où la valeur est trouvée
RowTrouvee = Trouve.Row
End If
' On copie le nom dans la cellule de la feuille 1
Worksheets("155").Cells(i, 15).Value = Sheets("cg_TCD").Cells(RowTrouvee, 2).Value
'vidage des variables
'Set PlageDeRecherche = Nothing
'Set Trouve = Nothing
Next i
End Sub
Ce code permet de checher dans la feuille cg_TCD, les noms figurant dans la feuille 155. Le problème c'est dans la feuille 155 on a les nom+un indice. Je voudrais intervertir : je cherche dans la feuille 155 , les noms figurant dans la feuille cg_TCD. J'applique ce code :
Sub rempl_contreg()
'déclaration des variables :
Dim Trouve As Range
Dim PlageDeRecherche As Range
Dim Valeur_Cherchee As String
Dim RowTrouvee As Long
For i = 1 To 2000
Valeur_Cherchee = Worksheets("cg_TCD").Cells(i, 1).Value
Set PlageDeRecherche = Worksheets("155").Columns(5)
'méthode find, ici on cherche la valeur exacte (LookAt:=xlPart)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookIn:=xlValues)
'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
'ici, traitement pour le cas où la valeur n'est pas trouvée
Debug.Print ("Aucun résultat trouvé...")
Else
'ici, traitement pour le cas où la valeur est trouvée
RowTrouvee = Trouve.Row
End If
' On copie le nom dans la cellule de la feuille 1
Worksheets("155").Cells(RowTrouvee, 15).Value = Worksheets("cg_TCD").Cells(i, 2).Value
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
Next i
End Sub
mais j'ai l'erreur suivante : erreur 1004 : erreur définie par l'application ou par l'objet en sourlignant Worksheets("155").Cells(RowTrouvee, 15).Value = Worksheets("cg_TCD").Cells(i, 2).Value
Une idée peut-être ? Et merci beaucoup.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question