Remplacer les cellules vides.
Fermé
Statisticien
Messages postés
26
Date d'inscription
mardi 25 novembre 2014
Statut
Membre
Dernière intervention
14 janvier 2015
-
17 déc. 2014 à 18:00
Statisticien Messages postés 26 Date d'inscription mardi 25 novembre 2014 Statut Membre Dernière intervention 14 janvier 2015 - 22 déc. 2014 à 15:32
Statisticien Messages postés 26 Date d'inscription mardi 25 novembre 2014 Statut Membre Dernière intervention 14 janvier 2015 - 22 déc. 2014 à 15:32
A voir également:
- Remplacer les cellules vides.
- Formule excel pour additionner plusieurs cellules - Guide
- Remplacer disque dur par ssd - Guide
- Remplacer word - Guide
- Quel site pour remplacer coco - Accueil - Réseaux sociaux
- Verrouiller cellules excel - Guide
5 réponses
jordane45
Messages postés
38437
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2025
4 737
17 déc. 2014 à 18:15
17 déc. 2014 à 18:15
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
18 déc. 2014 à 09:50
18 déc. 2014 à 09:50
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
Statisticien
Messages postés
26
Date d'inscription
mardi 25 novembre 2014
Statut
Membre
Dernière intervention
14 janvier 2015
19 déc. 2014 à 09:59
19 déc. 2014 à 09:59
Merci beaucoup, c'est bon le problème est résolu. Je vous remercie infiniment pour votre aide ainsi que pour votre disponibilité.
Statisticien
Messages postés
26
Date d'inscription
mardi 25 novembre 2014
Statut
Membre
Dernière intervention
14 janvier 2015
Modifié par jordane45 le 22/12/2014 à 15:43
Modifié par jordane45 le 22/12/2014 à 15:43
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
Statisticien
Messages postés
26
Date d'inscription
mardi 25 novembre 2014
Statut
Membre
Dernière intervention
14 janvier 2015
22 déc. 2014 à 15:32
22 déc. 2014 à 15:32
Quelqu'un aurait-il une proposition par rapport à la remarque que j'ai mentionné comme commentaire face à la réponse de jordane ?