Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/11/2011, 07h32   #1
Invité de passage
 
Homme
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 1
Points : 1
Par défaut couper une partie des données dans une autre colonne

Bonjour à tous,

Je suis nouveau et totalement débutant en programmation de macro... A vrai dire, au lieu de les programmer, je les enregistre habituellement....

Enfin, cette fois, l'exercice est impossible a effectuer en enregistrement simple...

Voici un extrait de mon tableau sur excel 2007

http://www.casimages.com/img.php?i=1...2945425307.png

J'aimerais pouvoir créer une macro qui détecte automatiquement la parenthèse de la colonne E pour la couper/coller dans la colonne F. De cette manière, il ne resterait que le nom de la ville dans la colonne E.

Si quelqu'un peut m'aider ca serait vraiment sympa...

Merci
ivan_isaak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 08h45   #2
Membre éprouvé
 
Homme Franck PRESSE
Inscription : août 2010
Messages : 202
Détails du profil
Informations personnelles :
Nom : Homme Franck PRESSE
Âge : 38
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : août 2010
Messages : 202
Points : 444
Points : 444
Bonjour,
Déjà, je tiens à dire que ce que tu souhaites et réalisable par formule en passant par une colonne intermédiaire...
Mais bon...
Avec ce code, tu peux réaliser ce que tu souhaites :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub test()
Dim Lign As Long
Dim Chaine As String
 
With Sheets("Feuil1") ' à adapter ==> le nom de ta feuille
'de la lign 6 à 14 A ADAPTER
For Lign = 6 To 14
    'vérifie la présence d'une parenthèse ouvrante dans la cellule
    If InStr(.Cells(Lign, 5), "(") <> 0 Then
        'on stocke, dans la variable Chaine le contenu de la cellule Col E
        Chaine = .Cells(Lign, 5)
        'on extrait la partie à gauche de (
        .Cells(Lign, 5) = Left(Chaine, InStr(Chaine, "(") - 2)
        'on extrait la partie à droite de (
        .Cells(Lign, 6) = Right(Chaine, Len(Chaine) - InStr(Chaine, "(") + 1)
    End If
'ligne suivante
Next
End With
End Sub
__________________
Cordialement,
Franck P.


Ps : n'oubliez pas de placer vos posts comme "résolus" () si tel est le cas...
pijaku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 08h46   #3
Membre Expert
 
Avatar de rvtoulon
 
Homme Hervé
Agent Technique
Inscription : mars 2009
Messages : 823
Détails du profil
Informations personnelles :
Nom : Homme Hervé
Âge : 36
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Agent Technique
Secteur : Santé

Informations forums :
Inscription : mars 2009
Messages : 823
Points : 1 441
Points : 1 441
Bonjour,
il faut que tu utilises la fonction split.

Voici un exemple à adapter, notamment le nom de la feuille, dans le code "Feuil1".
le code recherche l'espace entre le nom de la ville et la parenthèse, coupe la chaine de caractère et la met dans un tableau. La première entrée du taleau (mtab(0)) = colonne E, la deuxième entrée (mtab(1)) = colonne F
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub test()
Dim chaine As String, plage As Range
Dim mTab
 
With Sheets("Feuil1")
Set plage = .Range("E6:E" & .Range("E" & .Rows.Count).End(xlUp).Row)
End With
 
For Each c In plage
chaine = c.Value
 
If InStr(1, chaine, " ") <> 0 Then
  mTab = Split(chaine, " ")
  c.Value = mTab(0)
  c.Offset(0, 1).Value = mTab(1)
End If
 
Next c
End Sub
__________________
@+

Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
Ou sur si ce n'est pas le cas
rvtoulon est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/11/2011, 10h06   #4
Invité de passage
 
Homme
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 1
Points : 1
Les deux codes marchent très bien mais le premier est plus adapté à mes données car j'ai des noms de villes composés et donc avec plusieurs espaces.

Vous m'avez fais gagner un temps précieux !

merci beaucoup
ivan_isaak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h16.


 
 
 
 
Partenaires

Hébergement Web