Selection de cellule

Signaler
Messages postés
94
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
3 avril 2011
-
Messages postés
94
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
3 avril 2011
-
bonsoir

j'ai un ptit pb avec des selection de cellule

je vais vous simplifier mon classeur ca devrai etre plus compréhensible

sur une feuille jai 2 colonnes A et B

Colonne A jai des menu déroulant ou je choisie une valeur (texte)
colonne B jai mis une formule rechercheV.... afin dafficher une valeur correspondant à la colonne A

toutes mes cellule ne sont pas utilisées, du coup en colonne A jai des cellules vides qui ne pose pas de pb mais en colonne B jai des cellule qui contiennent la formule =SI(ESTERREUR(RECHERCHEV(C5;fourn!A:D;4))=VRAI;"";RECHERCHEV(C5;fourn!A:D;4)) du coup ca n'affiche pas de valeur du genre #N/A la cellule est vide (cest ce que je veux) MAIS la macro sais qu'il y a qqch du coup quand je selectionner la dernière cellule pleine de la colonne B Activesheet.Range("B:B3"& Activesheet.range("B66536").End(xlUp).Row).... il plante car il y a une valeur mais elle est du type #N/A.

Une idée???*

davance merci
Jacky

5 réponses

Messages postés
300
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
27 mai 2012
3
Bonjour,
Tu lances donc une macro sur les cellules de la colonne B, je me trompe ?

Pour ma part, quand je suis dans ce cas, dans ma macro, je commence par mettre dans la colonne C une copie de la colonne B "PAR VALEUR"
De ce fait ta colonne C est une copie de B mais sans aucune formule en arrière.

J'espère avoir été claire et que cela pourra aider ^_^

VB6, quand yen a plus yen a encore
Il y a tant a apprendre et seulement 24 heures dans une journée
Messages postés
300
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
27 mai 2012
3
Je viens de penser à une autre méthode ^^
Si cela est plus symple pour toi, dans excel il y a moyen de connaitre le type de valeur contenu par une cellule.

si tu fais un traitement pour chaque cellule, tu peux faire un
if (le type de la cellule n'est pas une ERROR) then
' traiter pour une cellule pas en erreur
else
' traiter pour une cellule en erreur (donc vide)
End if
Messages postés
94
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
3 avril 2011

en fait ma macro ne sert qu'a copier coller des cellules vers une feuille ou une autre en fonction de la valeur de la dernière ligne pleine de la colonne A.
Le problème cest que visuellement à l'écran la dernière ligne pleine est par exemple la 7 mais sur les ligne 8 9 10 il y a une formule dont le résultat ne s'affiche pas grace à la formule =SI(ESTERREUR
(RECHERCHEV(C4;fourn!A:D;4))=VRAI;"";RECHERCHEV(C4;fourn!A:D;4)) mais dès que j'aurais choisi une valeur dans le menu déroulant de la colonne A il ira rechercher une valeur correspondant a la valeur saisie en A tjs grace à la formule =SI(ESTERREUR(RECHERCHEV(C4;fourn!A:D;4))=VRAI;"";RECHERCHEV(C4;fourn!A:D;4))
et l'affichera

je voudrais savoir comment désigner la dernière ligne vide d'une colonne sans tenir compte de ligne visuellement vide (ici les ligne 8 9 10)

merci de votre aide
jacky
Messages postés
94
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
3 avril 2011

je pense qu'il faudrait utiliser du if mais je ne sais pas trop comment le syntaxer

il faudrait que j'ai qqch du genre if ("B65536")différent de #N/A then str=("B65536").value
else passer à la ligne d'audessus et la encore vérifier if ("B65536")différent de #N/A then str=("B65536").value
else passer à la ligne d'audessus et ainsi de suite

je n'arrive pas a l'écrire correctement pourrier vous m'aider ???

Merci
Jacky
Messages postés
94
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
3 avril 2011

voilà mon code y'aurait - il des erreurs si oui comment syntaxer tout ca merci de votre aide
jacky
Sub Commande()
Dim Str As String, MaFeuille As Worksheet

Range("B65536").Select
selection.End(xlUp).Select
Str = selection

ca dois donner qqch comme ca je pense mais pas sur du tout
If str.value =#N/A then
Range("A65536").End(xlUp).Row - 1
Else str = selection
End if
If str = "001"
Set MaFeuille = Sheets("F001")
End If
If Str = "F003" Then
Set MaFeuille = Sheets("F003")
End If

ActiveSheet.Range("D2").copy
MaFeuille.Range("A21:A" & MaFeuille.Range("A65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True
ActiveSheet.Range("F2").copy
MaFeuille.Range("C21:C" & MaFeuille.Range("C65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True
ActiveSheet.Range("H2").copy
MaFeuille.Range("B21:B" & MaFeuille.Range("B65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True
ActiveSheet.Range("F" & ActiveSheet.Range("F65356").End(xlUp).Row).copy
MaFeuille.Range("D21:D" & MaFeuille.Range("D65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True
ActiveSheet.Range("G" & ActiveSheet.Range("G65356").End(xlUp).Row).copy
MaFeuille.Range("E21:E" & MaFeuille.Range("E65536").End(xlUp).Row + 1).PasteSpecial xlPasteValues, , , True
ActiveSheet.Range("C" & ActiveSheet.Range("C65536").End(xlUp).Row).copy
MaFeuille.Range("C5").PasteSpecial xlPasteValues, , , True
ActiveSheet.Range("E" & ActiveSheet.Range("E65536").End(xlUp).Row).copy
MaFeuille.Range("C6").PasteSpecial xlPasteValues, , , True



End Sub