Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

réponse des messages : selection de cellules................ avec AV

4 réponses
Avatar
Brucat
Alors j'ai essaye plusieurs fois
sur 10 fois 1 réussite et ne me demander pas pourquoi
je ferme mon fichier
je le rouvre et cela ne fonctionne plus du tout.

Voici le message
"Incompatibilité de type"
là je devient chèvre



Essayons de résumer :
Si je mets ce code dans le module de ThisWorkbook (comme tu sembles le
faire)

Private Sub Workbook_Open()
Application.DisplayAlerts = False
Sheets("feuil3").Range("D" & [match(1,D1:D26,0)] & ":D" &
[match(2,D1:D26,0)]).Merge
End Sub

A l'ouverture du fichier, si dans D1:D26 de "Feuil3" les valeurs, 1 puis 2,
existent, il n'y a aucune raison que ça ne marche pas

AV



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.561 / Virus Database: 353 - Release Date: 13/01/2004

4 réponses

Avatar
Frédéric Sigonneau
Bonsoir,

Ce message d'erreur est probablement dû au fait que l'une des deux expressions
évaluées ( [match(1,D1:D26,0)] et [match(2,D1:D26,0)] ) renvoie une valeur
d'erreur, c'est-à-dire ne trouve pas soit 1 soit 2 dans la plage D1:D26
(hypothèse évoquée par Alain dans son message).
Cette valeur d'erreur n'est pas le type attendu pour un numéro de ligne (Long)
d'où le message. Si ce cas de figure peut se produire (absence de 1 et/ou de 2)
il faut modifier ton code pour gérer l'erreur. Par exemple :

Private Sub Workbook_Open()
Dim PremLi, DerLi

PremLi = [match(1,D1:D26,0)]
DerLi = [match(2,D1:D26,0)]
If IsError(PremLi) Or IsError(DerLi) Then
MsgBox "il manque quelque chose...": Exit Sub
End If
Application.DisplayAlerts = False
Sheets("feuil3").Range("D" & PremLi & ":D" & DerLi).Merge

End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Alors j'ai essaye plusieurs fois
sur 10 fois 1 réussite et ne me demander pas pourquoi
je ferme mon fichier
je le rouvre et cela ne fonctionne plus du tout.

Voici le message
"Incompatibilité de type"
là je devient chèvre

Essayons de résumer :
Si je mets ce code dans le module de ThisWorkbook (comme tu sembles le
faire)

Private Sub Workbook_Open()
Application.DisplayAlerts = False
Sheets("feuil3").Range("D" & [match(1,D1:D26,0)] & ":D" &
[match(2,D1:D26,0)]).Merge
End Sub

A l'ouverture du fichier, si dans D1:D26 de "Feuil3" les valeurs, 1 puis 2,
existent, il n'y a aucune raison que ça ne marche pas

AV

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.561 / Virus Database: 353 - Release Date: 13/01/2004


Avatar
Daniel.M
Salut Brucat,


Ce message d'erreur est probablement dû au fait que l'une des deux expressions
évaluées ( [match(1,D1:D26,0)] et [match(2,D1:D26,0)] ) renvoie une valeur
d'erreur, c'est-à-dire ne trouve pas soit 1 soit 2 dans la plage D1:D26
(hypothèse évoquée par Alain dans son message).



Ou que tu n'es pas situé sur la 'bonne' feuille active au moment de l'ouverture
du classeur.
Auquel cas, on doit soit
1-mettre la plage au long (avec le nom de la feuille) dans les 2 expressions
evaluate,
2-utiliser la notation PremLi=Application.Match(1,Sheets("Nom de
feuille").D1:D26,0)

Salutations,

Daniel M.

Avatar
Brucat
Merci à tous pour vos réponses.
J'ai vérifié à chaque fois que j'ai bien les valeurs 1 et 2 et cela ne
fonctionne pas. Je lui indique que je suis dans la feuil désire NADA...

Je devrait dire que cela fonctionne uniquement si le code est crée dans la
feuil 3 et là no pb;

Je vais me faire la totale (indication de la feuille dans les évaluation) et
on verra bien

Merci beaucoup à vous trois

"Daniel.M" a écrit dans le message de
news:

Salut Brucat,


Ce message d'erreur est probablement dû au fait que l'une des deux
expressions


évaluées ( [match(1,D1:D26,0)] et [match(2,D1:D26,0)] ) renvoie une
valeur


d'erreur, c'est-à-dire ne trouve pas soit 1 soit 2 dans la plage D1:D26
(hypothèse évoquée par Alain dans son message).



Ou que tu n'es pas situé sur la 'bonne' feuille active au moment de
l'ouverture

du classeur.
Auquel cas, on doit soit
1-mettre la plage au long (avec le nom de la feuille) dans les 2
expressions

evaluate,
2-utiliser la notation PremLi=Application.Match(1,Sheets("Nom de
feuille").D1:D26,0)

Salutations,

Daniel M.






---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.561 / Virus Database: 353 - Release Date: 13/01/2004


Avatar
Daniel.M
Salut,

"Brucat" wrote in message
news:bu5hjh$4va$
Merci à tous pour vos réponses.
J'ai vérifié à chaque fois que j'ai bien les valeurs 1 et 2 et cela ne
fonctionne pas. Je lui indique que je suis dans la feuil désire NADA...


Essaie de mettre Stop avant la première assignation et exécute pas à pas (F8) et
dis-nous quelles sont les valeurs de PremLi et DerLi après les assignations
(surtout lorsque le Merge ne fonctionne pas).

Salutations,

Daniel M.

Private Sub Workbook_Open()
Dim PremLi, DerLi
Stop
PremLi = [match(1,D1:D26,0)]
DerLi = [match(2,D1:D26,0)]
If IsError(PremLi) Or IsError(DerLi) Then
MsgBox "il manque quelque chose...": Exit Sub
End If
Application.DisplayAlerts = False
Debug.Print PremLi, DerLi
Sheets("feuil3").Range("D" & PremLi & ":D" & DerLi).Merge

End Sub