1 votes

Copier/déplacer les valeurs correspondant à un modèle vers une autre colonne

J'ai une feuille de calcul dans laquelle nous devons déplacer toutes les valeurs correspondant à un modèle dans différentes colonnes.

Par exemple, nous avons un B avec des valeurs constituées d'une ou plusieurs lettres suivies d'un ou plusieurs chiffres, par exemple k123 , k4567 , g345 , g65535 , HJ4567 , KL4553 etc. Je dois placer toutes les valeurs commençant par k en colonne C toutes les valeurs commençant par g en colonne D et ainsi de suite.

Existe-t-il une macro pour le faire ?

1voto

CharlieRB Points 22232

Ce code créera une macro pour déplacer vos données en fonction de la lettre précédant le nombre dans chaque cellule de la colonne B . Collez ceci dans l'explorateur VBA ( Alt + F11 ) et il apparaîtra dans la fenêtre de la macro sous la forme suivante MoveData .

Vous verrez que le code examine chaque cellule pour voir quel est le caractère le plus à gauche. Si c'est un k le contenu de la cellule est copié dans la cellule située 1 place à droite (colonne C), puis efface la cellule d'origine. Si le caractère est un g il est copié dans la cellule située 2 places à droite (colonne D), puis efface la cellule d'origine.

Sub MoveData()
Dim myrange, cell As Range
Set myrange = ActiveSheet.Range("B:B", Range("B:B").End(xlDown))
For Each cell In myrange
    If Left(cell.Value, 1) = "k" Then
        cell.Offset(0, 1).Value = cell.Value
        cell.ClearContents
    ElseIf Left(cell.Value, 1) = "g" Then
        cell.Offset(0, 2).Value = cell.Value
        cell.ClearContents
    End If
Next cell

    'Delete empty cells in column C
    Columns("C:C").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp

    'Delete empty cells in column D
    Columns("D:D").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.Range("A1").Select
End Sub

Vous pouvez changer les valeurs qu'il recherche en modifiant le champ "k" o "g" dans le IF déclarations.

Avis de non-responsabilité : A utiliser à vos risques et périls. Faites une copie de sauvegarde de votre travail. Nous ne sommes pas responsables de la perte de données.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X