0
votes

Comment trouver et formater des cellules qui ont du texte dans une certaine gamme?

J'essaie de rechercher une colonne et de faire quelque chose à toutes les cellules avec du texte, dans cette colonne, sauter des cellules vides.

spécifiquement
- Déplacer les cellules s'ils ont du texte de la colonne G Back 4 colonnes de la même rangée.
- Texte format comme centre / gras / arial 10.
- changer la couleur des cellules dans les colonnes AF dans la même ligne du texte que j'ai déplacé.

Je peux le faire pour une cellule en utilisant la VBA ci-dessous mais je voudrais le faire comme une boucle pour toutes les cellules de cette colonne . xxx


2 commentaires

Recherche gamme.Find et plage.findnext .


Je serais très reconnaissant de connaître la syntaxe de "si la cellule contient un texte"


3 Réponses :


0
votes

Vous pouvez traiter une cellule par ses coordonnées ou une plage par son nom. cellules (1, "A") code> est la plage de cellules et ("A1") code> est la plage.

Vous pouvez également adresser une cellule par son numéro d'index dans la collecte des cellules. Vous pouvez créer une collection de cellules dans une plage ou de toutes les cellules dans une feuille de calcul. Feuilles de calcul ("Stade1"). Cellules (1, "A") Code> Adresses Stade1! A1. Range ("A1: F1"). Cellules (1) Code> aborde la première cellule de A1: F1, qui, par hasard, serait également A1. Mais dans une plage C12: E23, ce serait C12. P>

Vous pouvez sélectionner n'importe quelle plage, être une cellule ou plusieurs. Cellules (1, "A"). Sélectionnez CODE> Sélectionne A1. feuille1! A1. Range ("A1: F1"). Cellules (1) .Sélectionnez Code> aurait le même effet que parce que A1 est la cellule de la gamme de francs ("A1: F1"). En sélectionnant une cellule ou une plage que la cellule ou la plage devient la sélection code> objet code>. Le code ci-dessous imprimera l'adresse de la sélection em> au volet immédiat. La sélection code> est une plage. L'adresse est $ 1 $ dans ce cas. P> xxx pré>

bien sûr, cellules (1, "A") code> est une seule cellule mais vous pouviez Demandez toujours l'adresse de sa première cellule. cellules (1, "A"). Cellules (1) .Address code> donneront le même résultat. P>

Après que vous sélectionnez em> une cellule que la cellule devienne Le ActiveCell code>. Mais une seule cellule peut être active à la fois. Par défaut, Excel activera la première cellule de la plage de sélection code> code>. Dans l'exemple ci-dessous A1 est l'ActiveCell par défaut. P>

With Range("A1:F1").Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 49407
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With


2 commentaires

Merci Variatus, info très utile là-bas. Avez-vous de la chance de savoir comment demander si une cellule contient du texte. Je voudrais dire, si ActiveCell.value = [Tout texte à]. Par exemple, s'il a les lettres ABC ou HLJHJQUSYGJ ou JUST A.


Utilisez la fonction Instr (), comme, si instr (ActiveCell.value, "ABC"), alors . Cela retournera true si "ABC" se trouve dans n'importe quel endroit de la valeur de la cellule. Si Instr (ActiveCell.Value, "ABC") = 1, alors sera testé si la valeur commence par "ABC".



-1
votes

J'ai trouvé le code très simple qui était le plus essentiel. Référencer les cellules avec du texte. Ici, il est dans un code simple avec une boîte de message.

Sub Reference_Cell_if_Contains_Text()
If ActiveCell.Value > 0 Then
Msgbox("This Cell Has Something in it!")
End If
End Sub


0 commentaires

-1
votes

J'ai pu écrire le code à l'aide d'un argument pour chaque / prochain argument. Voici le code:

Sub Format_Cells_if_contains_text_in_range()


Dim Cell As Range

For Each Cell In Range("G1:G200")
    If Cell.Value > 0 Then
    Cell.Select
        Application.CutCopyMode = False
        Selection.Copy
        ActiveCell.Offset(0, -5).Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ActiveCell.Offset(0, 5).Range("A1").Select
        Application.CutCopyMode = False
        Selection.ClearContents

' Format Cells Orange

        ActiveCell.Offset(0, -6).Range("A1:F1").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 49407
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With

' Format Cell Font, Size and Bold

        ActiveCell.Offset(0, 1).Range("A1").Select

        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .WrapText = True
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With

        With Selection.Font
            .Name = "Arial"
            .Size = 10
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontNone
        End With

        Selection.Font.Bold = True

    End If
Next Cell

End Sub


0 commentaires