IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Deplacement d'un caractere dans une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Septembre 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fonctionnaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2022
    Messages : 12
    Par défaut Deplacement d'un caractere dans une cellule
    Bonjour,

    après plusieurs tentative infructueuse, je viens faire appel a votre aide.

    En effet je cherche à déplacer le dernier caractère d'une cellule pour le mettre en premier dans la même cellule.
    je mexplique: dans la colonne A j'ai 32°43'45"N et je souhaite avoir N 32°43'45" et dans la colonne B j'ai 034°45'45"E et je souhaite avoir E 034°45'45". le tout en VBA.

    En vous remerciant par avance pour votre aide

    Bonne journée

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Code à coller dans un module standard:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Intervertir()
        Dim DerLig As Long, i As Long
        Application.ScreenUpdating = False
        DerLig = Range("A" & Rows.Count).End(xlUp).Row
        For i = 2 To DerLig
            If Right(Cells(i, "A"), 1) = "N" Then Cells(i, "A") = "N " & Left(Cells(i, "A"), Len(Cells(i, "A")) - 2)
            If Right(Cells(i, "B"), 1) = "E" Then Cells(i, "B") = "E " & Left(Cells(i, "B"), Len(Cells(i, "B")) - 2)
        Next i
    End Sub
    Cdlt

  3. #3
    Membre averti
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Septembre 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fonctionnaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2022
    Messages : 12
    Par défaut
    Merci beaucoup pour ton code!
    Est-ce que il est possible de définir la lettre de fin en variable.
    Je m’explique, le code que tu as écris fonctionne que si ce sont des positions en N et E mais si c'est S et O, comment faire?

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Intervertir()
        Dim DerLig As Long, i As Long
        Application.ScreenUpdating = False
        DerLig = Range("A" & Rows.Count).End(xlUp).Row
        For i = 2 To DerLig
            If Right(Cells(i, "A"), 1) = "N" Or Right(Cells(i, "A"), 1) = "S" Then
                Cells(i, "A") = Right(Cells(i, "A"), 1) & " " & Left(Cells(i, "A"), Len(Cells(i, "A")) - 2)
            End If
            If Right(Cells(i, "B"), 1) = "E" Or Right(Cells(i, "B"), 1) = "O" Then
                Cells(i, "B") = Right(Cells(i, "B"), 1) & " " & Left(Cells(i, "B"), Len(Cells(i, "B")) - 2)
            End If
        Next i
    Cdlt

  5. #5
    Membre averti
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Septembre 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fonctionnaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2022
    Messages : 12
    Par défaut
    merci infiniment,

    En vous souhaitant une bonne journée et de bonne fête de fin d'nnées

    Cdt

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 240
    Par défaut
    Hello,
    on peut aussi utiliser une fonction personnalisée (qui s'utilise comme une formule) qui utilise les expressions régulières :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Function ConvCoordDeb(ValCoord) As String
    Dim RE As Object
    Set RE = CreateObject("vbscript.regexp")
    ConvCoordDeb = "ERREUR"
    RE.Pattern = "([^NSEW]+)([NSEW])"
    If RE.test(ValCoord) Then
        ConvCoordDeb = RE.Replace(ValCoord, "$2 $1")
    End If
    End Function
    Nom : ConvCoordDeb.png
Affichages : 57
Taille : 8,0 Ko

    Normalement en notation gps l'ouest c'est W ( west) sinon remplacer les W par des O.

    Ami calmant, J.P

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/03/2009, 14h52
  2. [E-07] extraire chaine de caracteres dans une cellule
    Par dado91400 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/03/2009, 17h25
  3. Recherche de caractere dans une cellule
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/11/2006, 12h24
  4. erreur pour une insertion d'une chaine de caractere dans une cellule
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 09h09
  5. [VBA-E] Insérez le caractere " dans une cellule
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/09/2006, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo