Utiliser la fonction Find pour mettre en forme une colonne
Résolu
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Après de multiple essais seul, je demande votre aide pour réaliser une partie de mon code avec lequel j'ai du mal!
Voilà, j'ai créé une macro pour la faire la mise en page d'un fichier excel, j'ai réussi à faire beaucoup de chose mais là je suis un peu perdue.
Dans mes fichiers à traiter, le nombre de colonnes et de lignes varient.
Je veux qu'à chaque fois qu'il détecte le mot "Sensor Temp" à l'intérieure des cellules de l'entête de mes colonnes, qu'il effectue l'opération de colorier la cellule contenant le mot et qu'il change la largeur de la colonne.
Et la même chose pour le mot "Sensor Reading".
Voici le début de ma partie de code problématique:
Mes fonction Find semble fonctionné, ils me renvoient la première valeur trouvé correspondant à ma recherche.
J'ai essayé des fonction loop, loop while avec comme résultats une boucle infini. J'ai aussi essayé avec la fonction Case mes encore là, sans succès!
Merci de votre aide!
Après de multiple essais seul, je demande votre aide pour réaliser une partie de mon code avec lequel j'ai du mal!
Voilà, j'ai créé une macro pour la faire la mise en page d'un fichier excel, j'ai réussi à faire beaucoup de chose mais là je suis un peu perdue.
Dans mes fichiers à traiter, le nombre de colonnes et de lignes varient.
Je veux qu'à chaque fois qu'il détecte le mot "Sensor Temp" à l'intérieure des cellules de l'entête de mes colonnes, qu'il effectue l'opération de colorier la cellule contenant le mot et qu'il change la largeur de la colonne.
Et la même chose pour le mot "Sensor Reading".
Voici le début de ma partie de code problématique:
With Range(Cells(1, 9), Cells(1, DerCol)) Set trouve = Cells.Find(what:="Sensor Temp", lookat:=xlPart, searchdirection:=xlNext) Set trouve2 = Cells.Find(what:="Sensor Reading(KPa)", lookat:=xlPart, searchdirection:=xlNext) End With
Mes fonction Find semble fonctionné, ils me renvoient la première valeur trouvé correspondant à ma recherche.
J'ai essayé des fonction loop, loop while avec comme résultats une boucle infini. J'ai aussi essayé avec la fonction Case mes encore là, sans succès!
Select Case trouve Case Is = "Sensor Temp" Cells.Interior.ColorIndex = 23 Case Is = "Sensor Reading" Cells.Interior.ColorIndex = 23 Case Else End Select
Merci de votre aide!
A voir également:
- Utiliser la fonction Find pour mettre en forme une colonne
- Déplacer une colonne excel - Guide
- Mise en forme conditionnelle excel - Guide
- Fonction si et - Guide
- Trier une colonne excel - Guide
- Comment utiliser chromecast sur tv - Guide
2 réponses
Bonjour
Un exemple
http://www.cjoint.com/c/FDuuMUhjiUQ
Cdlmnt
Un exemple
http://www.cjoint.com/c/FDuuMUhjiUQ
Cdlmnt
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
1
Merci beaucoup pour l'exemple ccm81!
Bonjour Bassmart, Ccm81
Un autre exemple
nota: "xlpart" de "find" est une propriété par défaut. donc ne pas l'écrire car sensor xyz, sensor abc ... seront pris en considération
Un autre exemple
nota: "xlpart" de "find" est une propriété par défaut. donc ne pas l'écrire car sensor xyz, sensor abc ... seront pris en considération
Option Explicit
'-------------------------------------------------------
Sub chercher_sensors()
Dim Nbre As Byte, Cptr As Byte, Col As Integer
Application.ScreenUpdating = False
Nbre = Application.CountIf(Rows(1), "sensor*")
If Nbre > 0 Then
Col = Cells.Columns.Count
For Cptr = 1 To Nbre
Col = Rows(1).Find("sensor", Cells(1, Col), xlValues).Column
With Cells(1, Col)
.Interior.ColorIndex = 40
.ColumnWidth = 30
.HorizontalAlignment = xlCenter
End With
Next
End If
End Sub
Merci pour la réponse michel!
Ça fonctionne très bien!
J'ai modifié un peu pour que je puisse donnée 2 largeur de colonne différentes!
Comme ceci:
Ça fonctionne très bien!
J'ai modifié un peu pour que je puisse donnée 2 largeur de colonne différentes!
Comme ceci:
Nbre = Application.CountIf(Rows(1), "Sensor*") If Nbre > 0 Then Col = Cells.Columns.Count For Cptr = 1 To Nbre Col = Rows(1).Find("Sensor Temp", Cells(1, Col), xlValues).Column With Cells(1, Col) .Interior.ColorIndex = 37 .ColumnWidth = 15 End With Next For Cptr = 1 To Nbre Col = Rows(1).Find("Sensor Reading", Cells(1, Col), xlValues).Column With Cells(1, Col) .Interior.ColorIndex = 37 .ColumnWidth = 20 End With Next End If