VBA: problème avec la fonction Dim

Pour toutes vos questions à propos d'Excel ...

VBA: problème avec la fonction Dim

Messagepar FMad » 15 Sep 2011, 17:13

Bonjour à tous

J’ai une feuille Excel avec en première colonne des noms d’entreprises et en deuxième des secteurs d’activités séparés par des virgules. Et je voudrais obtenir une feuille a deux colonnes comme ci-dessous:

Nomd’entreprise1 1° secteur d’activité
Nomd’entreprise1 2° secteur d’activité
Nomd’entreprise2 1° secteur d’activité

J'ai donc écrit le programe à la fin de mon post en VBA, mais j'ai un problème avec la fonction Dim. Quand une entreprise est présent sur 3 secteurs comme si dessous :
Entreprise1, Secteur1,secteur2,secteur3

J’obtiens ce résultat :
Entreprise1 Secteur1
Entreprise1 secteur2,secteur3
Entreprise1 secteur3

J’ai utilisé la fonction MsgBox pour afficher les valeurs « dd » et « ff » avant d’appliquer la fonction Mid. Et les valeurs sont correctes Mid devrais sortir « secteur2 » à la 3° ligne. Est-ce que vous savez d’où peux venir le problème ?

Dim virgule As String * 1
Dim aa As Long
Dim bb As Long
Dim zz As Long
Dim cc As Byte
Dim dd As Long
Dim ee As Long

virgule = ","
aa = 0
bb = 0
zz = 2

Call adkomma2
‘Sous-routine ajoutant une virgule à la fin de chaque case.

Do Until Cells(zz, 2) = 0
Branchen = Cells(zz, 2)
cc = Len(Branchen)

Do Until cc = aa
bb = WorksheetFunction.Search(virgule, Branchen, aa + 1)

dd = aa + 1
ee = bb - 1
Branche = Mid(Branchen, dd, ee)

Cells(zz, 2).Activate
Rows(zz).Select
Selection.Insert Shift:=xlDown
zz = zz + 1
Cells(zz, 2) = Branchen
Cells(zz - 1, 2) = Branche
Branchen = Cells(zz, 1)
Cells(zz - 1, 1) = Branchen
Branchen = Cells(zz, 2)

aa = bb
Loop

aa = 0
bb = 0
Rows(zz).Select
Selection.Delete Shift:=xlUp

Loop

End Sub
FMad
Nouveau venu
 
Messages: 6
Inscription: 13 Sep 2011, 09:14
Version Excel: 2003

Re: VBA: problème avec la fonction Dim

Messagepar Yvouille » 16 Sep 2011, 11:54

Salut,

Si tu n'obtiens pas de réponse, je pense que c'est parce que ton code inscrit ainsi ne nous dit pas grand chose.

A ta place, je placerais mon fichier sur le site, si possible au format xls. (et si nécessaire, en enlevant les données confidentielles).

Et alors là, demande immédiatement une augmentation de la capacité à ton fournisseur de messagerie, car tu vas voir arriver les réponses :D :D

A te relire.
Yvouille
Avatar de l’utilisateur
Yvouille
Membre impliqué
 
Messages: 2077
Inscription: 06 Avr 2007, 07:03
Localisation: CH - Valais de cœur
Version Excel: 2003, 2007, 2010 All.

Re: VBA: problème avec la fonction Dim

Messagepar MaPoire » 18 Sep 2011, 11:04

Bonjour Yvouille,

En l'absence de données complémentaires, voici un fichier qui vous fournira peut-être une piste.
Fichiers joints
Problème avec la fonction Dim V1.xls
(50.5 Kio) Téléchargé 8 fois
Avatar de l’utilisateur
MaPoire
Membre habitué
 
Messages: 81
Inscription: 17 Sep 2011, 19:46
Version Excel: 2010

Re: VBA: problème avec la fonction Dim

Messagepar Dan » 18 Sep 2011, 14:13

Bonjour,

Attention Dim n'est pas une fonction mais un instruction pour déclare une variable qui permettra d'attribuer un "espace" de stockage mémoire à cette variable pendant l'exécution du code.

Par rapport à ton fichier une première idée serait d'utiliser la fonctionne Données / Convertir

- Sélectionne B2 à B8
- Menu Données / convertir
- Clique le case à cocher "délimité" puis clique sur "suivant"
- Coche "tabulation" et "virgule" puis clique sur "suivant" et sur "fin"

Ensuite adapter le code pour faire ce que tu veux

Amicalement
@+ Dan ;)
Avatar de l’utilisateur
Dan
Modérateur
 
Messages: 2398
Inscription: 27 Avr 2007, 15:31
Localisation: Liège - Belgique
Version Excel: 2010, 2003, 2000, Mac 2004


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], CB60, galopin01, Google [Bot], Google Adsense [Bot] et 40 invités