[Excel] Remplir la prochaine cellule vide
Résolu
betamorphe
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
premier message ici, je déséspère de trouver une solution (habituellement la fonction rechercher est très satisfaisante).
Voici mon problème : j'ai une macro qui remplit la cellule active par un formule, seulement je dois sélectionner cette cellule, je souhaiterai ajouter un code qui cherche la première cellule vide entre B10 et B30 et y colle ma formule.
Je collerai bien ma macro directement ici, mais j'ai fais une mauvaise manip et j'ai perdu mon classeur de macro, pas compliqué à retrouver.
Si je ne suis pas très clair je peux ajouter une capture d'écran de mon fichier excel.
Merci d'avance
Benjamin
premier message ici, je déséspère de trouver une solution (habituellement la fonction rechercher est très satisfaisante).
Voici mon problème : j'ai une macro qui remplit la cellule active par un formule, seulement je dois sélectionner cette cellule, je souhaiterai ajouter un code qui cherche la première cellule vide entre B10 et B30 et y colle ma formule.
Je collerai bien ma macro directement ici, mais j'ai fais une mauvaise manip et j'ai perdu mon classeur de macro, pas compliqué à retrouver.
Si je ne suis pas très clair je peux ajouter une capture d'écran de mon fichier excel.
Merci d'avance
Benjamin
A voir également:
- [Excel] Remplir la prochaine cellule vide
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Proteger cellule excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Word et excel gratuit - Guide
10 réponses
bonjour
Comme je doute fort que find trouve une cellule vide, je propose :
ainsi si je lance 3fois ma macro elle remplira B10, puis B11, puis B12
C'est ce qui devrait se dérouler comme fonctionnement.
Comme je doute fort que find trouve une cellule vide, je propose :
Public Sub premvide() Dim elm As Range For Each elm In Cells.Range("B10:B30") If IsEmpty(elm.Value) Then elm.FormulaR1C1 = "=R[-1]C[1]+R2C15" Exit For End If Next elm End Sub
ainsi si je lance 3fois ma macro elle remplira B10, puis B11, puis B12
C'est ce qui devrait se dérouler comme fonctionnement.
>Bonbour
difficile en effet; sans la macro, de vous donner le libellé;
Peut être en essayez d'adapter cà à votre cas
Dim cellulevide As String
On Error Resume Next
Set celluletrouvé = [H11:H10000].Find(What:=cellulevide)Crdlmnt
difficile en effet; sans la macro, de vous donner le libellé;
Peut être en essayez d'adapter cà à votre cas
Dim cellulevide As String
On Error Resume Next
Set celluletrouvé = [H11:H10000].Find(What:=cellulevide)Crdlmnt
Sub auto()
ActiveCell.Select
ActiveCell.FormulaR1C1 = "=R[-1]C[1]+R2C15"
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
C'est donc la première ligne "ActiveCell.Select" que je voudrais changer pour aller à la première cellule vide entre B10 et B30, ainsi si je lance 3fois ma macro elle remplira B10, puis B11, puis B12 indépendamment de la cellule déjà active.
ActiveCell.Select
ActiveCell.FormulaR1C1 = "=R[-1]C[1]+R2C15"
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
C'est donc la première ligne "ActiveCell.Select" que je voudrais changer pour aller à la première cellule vide entre B10 et B30, ainsi si je lance 3fois ma macro elle remplira B10, puis B11, puis B12 indépendamment de la cellule déjà active.
Bonjour,
Essayez cette variante,
Essayez cette variante,
Sub auto() Dim adr As String With ActiveSheet.Range("B10:B30") Set c = .Find("", LookIn:=xlValues) If Not c Is Nothing Then Do adr = c.Address ' *** la cellule vide reçoit l'adresse et le mot vide. Range(adr).Value = adr & " est vide" Set c = .FindNext(c) Loop While Not c Is Nothing End If End With End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour gbinforme,
Eh bien j'ai testée mon code et la fonction [FIND] fonctionne correctement.
Au passage je profite de votre réalisation différente.
Merci.
Eh bien j'ai testée mon code et la fonction [FIND] fonctionne correctement.
Au passage je profite de votre réalisation différente.
Merci.
Merci beaucoup, j'ai essayé la seconde version, elle me semblait plus simple et toute faite.
Juste pour pas que tu m'ais maché tout le boulot et que je recopie betement, si tu pouvais m'expliquer le code ça serait vraiment sympa, comme ça si je dois refaire une macro qui y ressemble je pourrai me débrouiller.
Et encore merci, ça va me faciliter du boulot ...
Juste pour pas que tu m'ais maché tout le boulot et que je recopie betement, si tu pouvais m'expliquer le code ça serait vraiment sympa, comme ça si je dois refaire une macro qui y ressemble je pourrai me débrouiller.
Et encore merci, ça va me faciliter du boulot ...
bonjour Le Pingou et Vaucluse,
Eh bien j'ai testée mon code et la fonction [FIND] fonctionne correctement.
Désolé de n'avoir pas mieux précisé ma formulation car je ne mettais nullement en cause le codage de la fonction find qui était totalement correct dans les 2 formulations.
Cependant, comme d'autres fonctions ou propriétés sous excel, la recherche d'une cellule vide avec find n'est pas toujours assurée du résultat et présente quelques fonctionnements curieux qui inspirent ma méfiance car ils sont difficiles à comprendre lorsque l'on en est victime.
Vous pouvez le vérifier en mettant vos codes sur une plage totalement vide et non accédée, ce qui peut bien sûr être le cas dans la demande qui manifestement crée une formule sur une nouvelle ligne.
Effectivement ma phrase n'était pas compréhensive avec sa formulation succincte et je vous prie de m'en excuser.
bonjour betamorphe,
si tu pouvais m'expliquer le code ça serait vraiment sympa,
Le code est simpliste en effet et il consiste à parcourir avec la boucle For les cellules de la plage, et à tester si la cellule est vide (IsEmpty) en s'arrêtant sur la première trouvée après avoir inséré la formule. Comme excel balaye nativement de haut en bas, cela correspond à ta demande.
Eh bien j'ai testée mon code et la fonction [FIND] fonctionne correctement.
Désolé de n'avoir pas mieux précisé ma formulation car je ne mettais nullement en cause le codage de la fonction find qui était totalement correct dans les 2 formulations.
Cependant, comme d'autres fonctions ou propriétés sous excel, la recherche d'une cellule vide avec find n'est pas toujours assurée du résultat et présente quelques fonctionnements curieux qui inspirent ma méfiance car ils sont difficiles à comprendre lorsque l'on en est victime.
Vous pouvez le vérifier en mettant vos codes sur une plage totalement vide et non accédée, ce qui peut bien sûr être le cas dans la demande qui manifestement crée une formule sur une nouvelle ligne.
Effectivement ma phrase n'était pas compréhensive avec sa formulation succincte et je vous prie de m'en excuser.
bonjour betamorphe,
si tu pouvais m'expliquer le code ça serait vraiment sympa,
Le code est simpliste en effet et il consiste à parcourir avec la boucle For les cellules de la plage, et à tester si la cellule est vide (IsEmpty) en s'arrêtant sur la première trouvée après avoir inséré la formule. Comme excel balaye nativement de haut en bas, cela correspond à ta demande.
Bonjour gbinforme,
Merci infiniment pour l'explication concernant la fonction [FIND].
Je réalisé l'essai que vous proposé.
Eh bien si la plage est vide c'est surprenant il oublie la première cellule vide mais il la reprend après avoir traitée la dernière.
Note : qu'est ce que vous entendez par : plage vide non accédée !
Excellente semaine.
Merci infiniment pour l'explication concernant la fonction [FIND].
Je réalisé l'essai que vous proposé.
Eh bien si la plage est vide c'est surprenant il oublie la première cellule vide mais il la reprend après avoir traitée la dernière.
Note : qu'est ce que vous entendez par : plage vide non accédée !
Excellente semaine.
bonjour Le Pingou,
qu'est ce que vous entendez par : plage vide non accédée !
Peut-être pas clair effectivement. Si la dernière cellule utilisée (ctrl + fin) est par exemple F22 et que vous lanciez la macro sur B30:B40, il ne va pas y avoir de cellule vide dans la plage.
Cela fait partie des fonctions qui ont des résultats imprévus comme aussi UsedRange qui n'évolue pas en inférieur même si l'on supprime des lignes et cela peut parfois créer des migraines !
C'est uniquement pour ce comportement un peu imprévisible de la fonction find sur recherche de vides que j'émettais des doutes dans l'utilisation alors que pour rechercher des valeurs elle est très performante, bien paramétrable et facilement utilisable, même sur un classeur complet.
Bonne soirée et à bientôt sur un autre sujet.
qu'est ce que vous entendez par : plage vide non accédée !
Peut-être pas clair effectivement. Si la dernière cellule utilisée (ctrl + fin) est par exemple F22 et que vous lanciez la macro sur B30:B40, il ne va pas y avoir de cellule vide dans la plage.
Cela fait partie des fonctions qui ont des résultats imprévus comme aussi UsedRange qui n'évolue pas en inférieur même si l'on supprime des lignes et cela peut parfois créer des migraines !
C'est uniquement pour ce comportement un peu imprévisible de la fonction find sur recherche de vides que j'émettais des doutes dans l'utilisation alors que pour rechercher des valeurs elle est très performante, bien paramétrable et facilement utilisable, même sur un classeur complet.
Bonne soirée et à bientôt sur un autre sujet.